You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by gm...@apache.org on 2014/07/20 14:32:38 UTC

svn commit: r1612082 - in /roller/trunk/app/src: main/java/org/apache/roller/weblogger/business/themes/ main/java/org/apache/roller/weblogger/pojos/ main/java/org/apache/roller/weblogger/ui/rendering/servlets/ main/java/org/apache/roller/weblogger/ui/r...

Author: gmazza
Date: Sun Jul 20 12:32:36 2014
New Revision: 1612082

URL: http://svn.apache.org/r1612082
Log:
Switch from string to enums for theme scripting language; checked 5.0.4 -> 5.1 still works with it.

Modified:
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/FeedServlet.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRendererFactory.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml
    roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java Sun Jul 20 12:32:36 2014
@@ -221,9 +221,9 @@ public class SharedThemeFromDir extends 
                     .getStylesheet();
             // getting the template codes for available types
             ThemeMetadataTemplateRendition standardTemplateCode = stylesheetTmpl
-                    .getTemplateCodeTable().get(RenditionType.STANDARD);
+                    .getTemplateRenditionTable().get(RenditionType.STANDARD);
             ThemeMetadataTemplateRendition mobileTemplateCode = stylesheetTmpl
-                    .getTemplateCodeTable().get(RenditionType.MOBILE);
+                    .getTemplateRenditionTable().get(RenditionType.MOBILE);
 
             // standardTemplateCode required
             if (standardTemplateCode == null) {
@@ -238,7 +238,7 @@ public class SharedThemeFromDir extends 
                         .getTemplateLang());
                 mobileTemplateCode.setType(RenditionType.MOBILE);
 
-                stylesheetTmpl.addTemplateCode(RenditionType.MOBILE, mobileTemplateCode);
+                stylesheetTmpl.addTemplateRendition(mobileTemplateCode);
             }
 
             // construct File object from path
@@ -324,9 +324,9 @@ public class SharedThemeFromDir extends 
 
             // getting the template codes for available types
             ThemeMetadataTemplateRendition standardTemplateCode = templateMetadata
-                    .getTemplateCodeTable().get(RenditionType.STANDARD);
+                    .getTemplateRenditionTable().get(RenditionType.STANDARD);
             ThemeMetadataTemplateRendition mobileTemplateCode = templateMetadata
-                    .getTemplateCodeTable().get(RenditionType.MOBILE);
+                    .getTemplateRenditionTable().get(RenditionType.MOBILE);
 
             // If no template code present for any type
             if (standardTemplateCode == null) {
@@ -341,7 +341,7 @@ public class SharedThemeFromDir extends 
                         .getTemplateLang());
                 mobileTemplateCode.setType(RenditionType.MOBILE);
 
-                templateMetadata.addTemplateCode(RenditionType.MOBILE, mobileTemplateCode);
+                templateMetadata.addTemplateRendition(mobileTemplateCode);
             }
 
             // construct File object from path
@@ -456,8 +456,7 @@ public class SharedThemeFromDir extends 
 
         templateCode.setTemplateId(templateId);
         templateCode.setTemplate(contents);
-        templateCode
-                .setTemplateLanguage(templateCodeMetadata.getTemplateLang());
+        templateCode.setTemplateLanguage(templateCodeMetadata.getTemplateLang());
         templateCode.setType(templateCodeMetadata.getType());
         templateCode.setLastModified(new Date(templateFile.lastModified()));
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplate.java Sun Jul 20 12:32:36 2014
@@ -19,6 +19,7 @@
 package org.apache.roller.weblogger.business.themes;
 
 import org.apache.roller.weblogger.pojos.TemplateRendition;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
@@ -42,7 +43,7 @@ public class SharedThemeTemplate impleme
     private String contents = null;
     private String link = null;
     private Date lastModified = null;
-    private String templateLanguage = null;
+    private TemplateLanguage templateLanguage = null;
     private boolean hidden = false;
     private boolean navbar = false;
     private String  outputContentType = null;
@@ -56,7 +57,7 @@ public class SharedThemeTemplate impleme
     
     public SharedThemeTemplate(String id, String action, String name,
             String desc, String contents, String link, Date date, 
-            String tempLang, boolean hid, boolean navbar) {
+            TemplateLanguage tempLang, boolean hid, boolean navbar) {
         
         this.id = id;
         this.action = action;
@@ -69,14 +70,7 @@ public class SharedThemeTemplate impleme
         this.hidden = hid;
         this.navbar = navbar;
     }
-    
-    
-    // NOTE: decorators are deprecated as of 4.0 but we leave this here because
-    //       they need to be left in place for backwards compatability
-    public ThemeTemplate getDecorator() {
-        return null;
-    }
-    
+
     public String getId() {
         return id;
     }
@@ -125,11 +119,11 @@ public class SharedThemeTemplate impleme
         this.link = link;
     }
 
-    public String getTemplateLanguage() {
+    public TemplateLanguage getTemplateLanguage() {
         return templateLanguage;
     }
 
-    public void setTemplateLanguage(String templateLanguage) {
+    public void setTemplateLanguage(TemplateLanguage templateLanguage) {
         this.templateLanguage = templateLanguage;
     }
 
@@ -149,14 +143,6 @@ public class SharedThemeTemplate impleme
         this.navbar = navbar;
     }
 
-    public String getDecoratorName() {
-        return null;
-    }
-
-    public void setDecoratorName(String decorator) {
-        // no-op
-    }
-
     public String getOutputContentType() {
         return outputContentType;
     }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplateRendition.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplateRendition.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplateRendition.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeTemplateRendition.java Sun Jul 20 12:32:36 2014
@@ -33,7 +33,7 @@ public class SharedThemeTemplateRenditio
 	private String templateId = null;
 	private String template = null;
 	private RenditionType type = null;
-	private String templateLanguage = null;
+	private TemplateLanguage templateLanguage = null;
 	private Date lastModified = null;
 
 	public SharedThemeTemplateRendition(String templateId, RenditionType type) {
@@ -117,12 +117,12 @@ public class SharedThemeTemplateRenditio
 	}
 
 	// @Override
-	public String getTemplateLanguage() {
+	public TemplateLanguage getTemplateLanguage() {
 		return templateLanguage;
 	}
 
 	// @Override
-	public void setTemplateLanguage(String templateLanguage) {
+	public void setTemplateLanguage(TemplateLanguage templateLanguage) {
 		this.templateLanguage = templateLanguage;
 	}
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java Sun Jul 20 12:32:36 2014
@@ -19,7 +19,9 @@
 package org.apache.roller.weblogger.business.themes;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.jdom2.Document;
 import org.jdom2.Element;
@@ -131,39 +133,31 @@ public class ThemeMetadataParser {
 		boolean roller50format = false;
 		for (Element templateCodeElement : templateCodeList) {
 			ThemeMetadataTemplateRendition templateCode = new ThemeMetadataTemplateRendition();
-			templateCode.setTemplateLang(templateCodeElement.getChildText("templateLanguage"));
-            if (StringUtils.isEmpty(templateCode.getTemplateLang())) {
+            String templateString = templateCodeElement.getChildText("templateLanguage");
+            if (StringUtils.isEmpty(templateString)) {
                 throw new ThemeParsingException("templateCode must contain a 'templateLanguage' element");
+            } else {
+                try {
+                    templateCode.setTemplateLang(TemplateLanguage.valueOf(templateString.toUpperCase()));
+                } catch (IllegalArgumentException e) {
+                    throw new ThemeParsingException("Unknown templateLanguage value '" + templateString + "'");
+                }
             }
 			templateCode.setContentsFile(templateCodeElement.getChildText("contentsFile"));
             if (StringUtils.isEmpty(templateCode.getContentsFile())) {
                 throw new ThemeParsingException("templateCode must contain a 'contentsFile' element");
             }
-			String renditionValue = templateCodeElement.getChildText("type");
+            String renditionValue = templateCodeElement.getChildText("type");
             if (renditionValue != null) {
-                templateCode.setType(RenditionType.valueOf(renditionValue.toUpperCase()));
-                if (templateCode.getType() == null) {
+                try {
+                    templateCode.setType(RenditionType.valueOf(renditionValue.toUpperCase()));
+                } catch (IllegalArgumentException e) {
                     throw new ThemeParsingException("Invalid rendition type " + renditionValue + " found.");
                 }
             } else {
                 throw new ThemeParsingException("templateCode must contain a 'type' element");
             }
-			template.addTemplateCode(templateCode.getType(), templateCode);
-
-			// if theme has type, then it's roller50format
-			roller50format = true;
-		}
-
-		// hack to ensure old format themes still work (presently deactivated)
-		if (!roller50format) {
-            throw new ThemeParsingException("Incompatible (pre- Roller 5.0) theme.xml found, cannot process.");
-/*
-			ThemeMetadataTemplateRendition templateCode = new ThemeMetadataTemplateRendition();
-			templateCode.setTemplateLang(template.getTemplateLanguage());
-			templateCode.setContentsFile(template.getContentsFile());
-			templateCode.setContentType(template.getContentType());
-			templateCode.setType(RenditionType.STANDARD);
-			template.addTemplateCode(RenditionType.STANDARD, templateCode); */
+			template.addTemplateRendition(templateCode);
 		}
 
 		String navbar = element.getChildText("navbar");
@@ -200,12 +194,17 @@ public class ThemeMetadataParser {
 
         // parsing templatecode segment
         List<Element> templateCodeList = element.getChildren("templateCode");
-		boolean roller50format = false;
         for (Element templateCodeElement : templateCodeList) {
             ThemeMetadataTemplateRendition templateCode = new ThemeMetadataTemplateRendition();
-            templateCode.setTemplateLang(templateCodeElement.getChildText("templateLanguage"));
-            if (StringUtils.isEmpty(templateCode.getTemplateLang())) {
-                throw new ThemeParsingException("stylesheet must contain a 'templateLanguage' element");
+            String templateString = templateCodeElement.getChildText("templateLanguage");
+            if (StringUtils.isEmpty(templateString)) {
+                throw new ThemeParsingException("templateCode must contain a 'templateLanguage' element");
+            } else {
+                try {
+                    templateCode.setTemplateLang(TemplateLanguage.valueOf(templateString.toUpperCase()));
+                } catch (IllegalArgumentException e) {
+                    throw new ThemeParsingException("Unknown templateLanguage value '" + templateString + "'");
+                }
             }
             templateCode.setContentsFile(templateCodeElement.getChildText("contentsFile"));
             if (StringUtils.isEmpty(templateCode.getContentsFile())) {
@@ -213,30 +212,16 @@ public class ThemeMetadataParser {
             }
             String renditionValue = templateCodeElement.getChildText("type");
             if (renditionValue != null) {
-                templateCode.setType(RenditionType.valueOf(renditionValue.toUpperCase()));
-                if (templateCode.getType() == null) {
+                try {
+                    templateCode.setType(RenditionType.valueOf(renditionValue.toUpperCase()));
+                } catch (IllegalArgumentException e) {
                     throw new ThemeParsingException("Invalid rendition type " + renditionValue + " found.");
                 }
             } else {
                 throw new ThemeParsingException("templateCode must contain a 'type' element");
             }
-            template.addTemplateCode(templateCode.getType(), templateCode);
-
-			// if theme has type, then it's roller50format
-			roller50format = true;
+            template.addTemplateRendition(templateCode);
         }
-        
-		// hack to ensure old format themes still work (presently deactivated)
-   		if (!roller50format) {
-            throw new ThemeParsingException("Incompatible (pre- Roller 5.0) theme.xml found, cannot process.");
-/*
-			ThemeMetadataTemplateRendition templateCode = new ThemeMetadataTemplateRendition();
-			templateCode.setTemplateLang(template.getTemplateLanguage());
-			templateCode.setContentsFile(template.getContentsFile());
-			templateCode.setContentType(template.getContentType());
-			templateCode.setType(RenditionType.STANDARD);
-			template.addTemplateCode(RenditionType.STANDARD, templateCode); */
-		}
 
         // validate template
         if(StringUtils.isEmpty(template.getName())) {

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.java Sun Jul 20 12:32:36 2014
@@ -37,7 +37,7 @@ public class ThemeMetadataTemplate {
     private String contentType = null;
 
     // Hash table to keep metadata about parsed template code files
-    private Map<RenditionType, ThemeMetadataTemplateRendition> templateCodeTable
+    private Map<RenditionType, ThemeMetadataTemplateRendition> templateRenditionTable
             = new HashMap<RenditionType, ThemeMetadataTemplateRendition>();
 
     public String getAction() {
@@ -96,16 +96,16 @@ public class ThemeMetadataTemplate {
         this.contentType = contentType;
     }
 
-    public void addTemplateCode(RenditionType type, ThemeMetadataTemplateRendition templateCode) {
-        this.getTemplateCodeTable().put(type, templateCode);
+    public void addTemplateRendition(ThemeMetadataTemplateRendition templateCode) {
+        this.getTemplateRenditionTable().put(templateCode.getType(), templateCode);
     }
 
     public ThemeMetadataTemplateRendition getTemplateRendition(RenditionType type){
-        return this.getTemplateCodeTable().get(type);
+        return this.getTemplateRenditionTable().get(type);
     }
 
-    public Map<RenditionType, ThemeMetadataTemplateRendition> getTemplateCodeTable() {
-        return templateCodeTable;
+    public Map<RenditionType, ThemeMetadataTemplateRendition> getTemplateRenditionTable() {
+        return templateRenditionTable;
     }
 
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplateRendition.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplateRendition.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplateRendition.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataTemplateRendition.java Sun Jul 20 12:32:36 2014
@@ -20,17 +20,18 @@
 package org.apache.roller.weblogger.business.themes;
 
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 
 public class ThemeMetadataTemplateRendition {
-    private String templateLang = null;
+    private TemplateLanguage templateLang = null;
     private String contentsFile = null;
     private RenditionType type = null;
 
-    public String getTemplateLang() {
+    public TemplateLanguage getTemplateLang() {
         return templateLang;
     }
 
-    public void setTemplateLang(String templateLang) {
+    public void setTemplateLang(TemplateLanguage templateLang) {
         this.templateLang = templateLang;
     }
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java Sun Jul 20 12:32:36 2014
@@ -35,7 +35,7 @@ public class CustomTemplateRendition imp
 	// template contents
 	private String template = null;
 	private RenditionType type = null;
-	private String templateLanguage = null;
+	private TemplateLanguage templateLanguage = null;
 
 	public CustomTemplateRendition(String templateId, RenditionType type) {
 		this.templateId = templateId;
@@ -110,12 +110,12 @@ public class CustomTemplateRendition imp
 	}
 
 	// @Override
-	public String getTemplateLanguage() {
+	public TemplateLanguage getTemplateLanguage() {
 		return templateLanguage;
 	}
 
 	// @Override
-	public void setTemplateLanguage(String templateLanguage) {
+	public void setTemplateLanguage(TemplateLanguage templateLanguage) {
 		this.templateLanguage = templateLanguage;
 	}
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticTemplate.java Sun Jul 20 12:32:36 2014
@@ -21,6 +21,7 @@ package org.apache.roller.weblogger.pojo
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -39,12 +40,12 @@ public class StaticTemplate implements T
     private String name = null;
     private String description = null;
     private Date lastModified = new Date();
-    private String templateLanguage = null;
+    private TemplateLanguage templateLanguage = null;
     private String  outputContentType = null;
     private RenditionType type = RenditionType.STANDARD;
     
     
-    public StaticTemplate(String id, String lang) {
+    public StaticTemplate(String id, TemplateLanguage lang) {
         this.id = id;
         this.name = id;
         this.description = id;
@@ -84,11 +85,11 @@ public class StaticTemplate implements T
         this.lastModified = lastModified;
     }
 
-    public String getTemplateLanguage() {
+    public TemplateLanguage getTemplateLanguage() {
         return templateLanguage;
     }
 
-    public void setTemplateLanguage(String templateLanguage) {
+    public void setTemplateLanguage(TemplateLanguage templateLanguage) {
         this.templateLanguage = templateLanguage;
     }
     

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java Sun Jul 20 12:32:36 2014
@@ -21,6 +21,7 @@ package org.apache.roller.weblogger.pojo
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -44,14 +45,12 @@ public class StaticThemeTemplate impleme
     private boolean hidden = false;
     private boolean navbar = false;
     private Date lastModified = new Date();
-    private String templateLanguage = null;
+    private TemplateLanguage templateLanguage = null;
     private String outputContentType = null;
-    private String decoratorName = null;
-    private ThemeTemplate decorator = null;
     private RenditionType type = RenditionType.STANDARD;
     
     
-    public StaticThemeTemplate(String id, String lang) {
+    public StaticThemeTemplate(String id, TemplateLanguage lang) {
         this.id = id;
         this.name = id;
         this.description = id;
@@ -92,11 +91,11 @@ public class StaticThemeTemplate impleme
         this.lastModified = lastModified;
     }
 
-    public String getTemplateLanguage() {
+    public TemplateLanguage getTemplateLanguage() {
         return templateLanguage;
     }
 
-    public void setTemplateLanguage(String templateLanguage) {
+    public void setTemplateLanguage(TemplateLanguage templateLanguage) {
         this.templateLanguage = templateLanguage;
     }
     
@@ -152,14 +151,6 @@ public class StaticThemeTemplate impleme
         this.navbar = navbar;
     }
 
-    public ThemeTemplate getDecorator() {
-        return decorator;
-    }
-
-    public void setDecorator(ThemeTemplate decorator) {
-        this.decorator = decorator;
-    }
-
     public String getContents() {
         return contents;
     }
@@ -168,12 +159,4 @@ public class StaticThemeTemplate impleme
         this.contents = contents;
     }
 
-    public String getDecoratorName() {
-        return decoratorName;
-    }
-
-    public void setDecoratorName(String decoratorName) {
-        this.decoratorName = decoratorName;
-    }
-    
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java Sun Jul 20 12:32:36 2014
@@ -25,11 +25,13 @@ public interface TemplateRendition {
 
     public enum RenditionType {STANDARD, MOBILE}
 
+    public enum TemplateLanguage {VELOCITY}
+
     String getTemplate();
 
     String getTemplateId();
 
-    String getTemplateLanguage();
+    TemplateLanguage getTemplateLanguage();
 
     RenditionType getType();
 
@@ -37,7 +39,7 @@ public interface TemplateRendition {
 
     void setTemplateId(String templateId);
 
-    void setTemplateLanguage(String templateLanguage);
+    void setTemplateLanguage(TemplateLanguage templateLanguage);
 
     void setType(RenditionType type);
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/FeedServlet.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/FeedServlet.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/FeedServlet.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/FeedServlet.java Sun Jul 20 12:32:36 2014
@@ -36,6 +36,7 @@ import org.apache.roller.weblogger.confi
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.StaticTemplate;
 import org.apache.roller.weblogger.pojos.Template;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest;
 import org.apache.roller.weblogger.util.cache.CachedContent;
@@ -283,7 +284,7 @@ public class FeedServlet extends HttpSer
         Renderer renderer;
         try {
             log.debug("Looking up renderer");
-            Template template = new StaticTemplate(pageId, "velocity");
+            Template template = new StaticTemplate(pageId, TemplateLanguage.VELOCITY);
             renderer = RendererManager.getRenderer(template,
                     MobileDeviceRepository.DeviceType.standard);
         } catch (Exception e) {

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java Sun Jul 20 12:32:36 2014
@@ -30,6 +30,7 @@ import org.apache.roller.weblogger.busin
 import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.StaticThemeTemplate;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
@@ -276,7 +277,7 @@ public class PageServlet extends HttpSer
             // User doesn't have one so return the default
             if (page == null) {
                 page = new StaticThemeTemplate(
-                        "templates/weblog/popupcomments.vm", "velocity");
+                        "templates/weblog/popupcomments.vm", TemplateLanguage.VELOCITY);
             }
 
             // If request specified the page, then go with that

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java Sun Jul 20 12:32:36 2014
@@ -39,6 +39,7 @@ import org.apache.roller.planet.pojos.Pl
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.StaticTemplate;
 import org.apache.roller.weblogger.pojos.Template;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RendererManager;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository.DeviceType;
@@ -197,7 +198,7 @@ public class PlanetFeedServlet extends H
         try {
             log.debug("Looking up renderer");
             Template template = new StaticTemplate(
-                    "templates/planet/planetrss.vm", "velocity");
+                    "templates/planet/planetrss.vm", TemplateLanguage.VELOCITY);
             renderer = RendererManager.getRenderer(template, DeviceType.mobile);
         } catch (Exception e) {
             // nobody wants to render my content :(

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java Sun Jul 20 12:32:36 2014
@@ -32,6 +32,7 @@ import org.apache.roller.weblogger.Weblo
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.StaticTemplate;
 import org.apache.roller.weblogger.pojos.Template;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;
 import org.apache.roller.weblogger.ui.rendering.util.ModDateHeaderUtil;
@@ -117,7 +118,7 @@ public class RSDServlet extends HttpServ
         Renderer renderer;
         try {
             log.debug("Looking up renderer");
-            Template template = new StaticTemplate("weblog/rsd.vm", "velocity");
+            Template template = new StaticTemplate("weblog/rsd.vm", TemplateLanguage.VELOCITY);
             renderer = RendererManager.getRenderer(template,
                     DeviceType.standard);
         } catch (Exception e) {

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/WeblogCacheWarmupJob.java Sun Jul 20 12:32:36 2014
@@ -28,6 +28,7 @@ import org.apache.roller.weblogger.busin
 import org.apache.roller.weblogger.config.WebloggerConfig;
 import org.apache.roller.weblogger.pojos.StaticTemplate;
 import org.apache.roller.weblogger.pojos.Template;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RendererManager;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository.DeviceType;
@@ -131,7 +132,7 @@ public class WeblogCacheWarmupJob implem
                 // lookup Renderer we are going to use
                 Renderer renderer;
                 Template template = new StaticTemplate(
-					"weblog-"+type+"-"+format+".vm", "velocity");
+					"weblog-"+type+"-"+format+".vm", TemplateLanguage.VELOCITY);
                 renderer = RendererManager.getRenderer(template, DeviceType.standard);
                 
                 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRendererFactory.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRendererFactory.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRendererFactory.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRendererFactory.java Sun Jul 20 12:32:36 2014
@@ -24,6 +24,7 @@ import org.apache.roller.weblogger.Weblo
 import org.apache.roller.weblogger.pojos.Template;
 import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RendererFactory;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
@@ -55,7 +56,7 @@ public class VelocityRendererFactory imp
             return null;
         }
         
-        if ("velocity".equals(tr.getTemplateLanguage())) {
+        if (TemplateLanguage.VELOCITY.equals(tr.getTemplateLanguage())) {
             // standard velocity template
             try {
                renderer = new VelocityRenderer(template, deviceType);

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java Sun Jul 20 12:32:36 2014
@@ -23,15 +23,14 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.config.WebloggerConfig;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
-import org.apache.roller.weblogger.util.Utilities;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 import org.apache.struts2.interceptor.validation.SkipValidation;
 
-import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -181,10 +180,12 @@ public class TemplateEdit extends UIActi
         }
     }
 
-    public List getTemplateLanguages() {
-        String langs = WebloggerConfig.getProperty("rendering.templateLanguages", "velocity");
-        String[] langsArray = Utilities.stringToStringArray(langs, ",");
-        return Arrays.asList(langsArray);
+    public List<String> getTemplateLanguages() {
+        List<String> langList = new ArrayList<String>();
+        for (TemplateLanguage lang : TemplateLanguage.values()) {
+            langList.add(lang.name());
+        }
+        return langList;
     }
 
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java Sun Jul 20 12:32:36 2014
@@ -25,7 +25,9 @@ import org.apache.roller.util.RollerCons
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
+import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
@@ -168,7 +170,7 @@ public class Templates extends UIAction 
                 CustomTemplateRendition standardRendition = new CustomTemplateRendition(
                         newTemplate.getId(), RenditionType.STANDARD);
                 standardRendition.setTemplate(getText("pageForm.newTemplateContent"));
-                standardRendition.setTemplateLanguage("velocity");
+                standardRendition.setTemplateLanguage(TemplateLanguage.VELOCITY);
                 WebloggerFactory.getWeblogger().getWeblogManager()
                         .saveTemplateRendition(standardRendition);
 
@@ -176,7 +178,7 @@ public class Templates extends UIAction 
                 CustomTemplateRendition mobileRendition = new CustomTemplateRendition(
                         newTemplate.getId(), RenditionType.MOBILE);
                 mobileRendition.setTemplate(newTemplate.getContents());
-                mobileRendition.setTemplateLanguage("velocity");
+                mobileRendition.setTemplateLanguage(TemplateLanguage.VELOCITY);
                 WebloggerFactory.getWeblogger().getWeblogManager()
                         .saveTemplateRendition(mobileRendition);
                 */

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties Sun Jul 20 12:32:36 2014
@@ -406,9 +406,6 @@ org.apache.roller.weblogger.ui.core.secu
 rendering.rollerRendererFactories=\
 org.apache.roller.weblogger.ui.rendering.velocity.VelocityRendererFactory
 
-# List of available template languages
-rendering.templateLanguages=velocity
-
 # The set of user defined renderer factories.  These are prepended to the list above.
 rendering.userRendererFactories=
 

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml Sun Jul 20 12:32:36 2014
@@ -29,6 +29,7 @@
             </basic>
             <basic name="templateLanguage">
                 <column name="templatelang" insertable="true" updatable="true" unique="false"/>
+                <enumerated>STRING</enumerated>
             </basic>
             <!--many-to-one name="weblogTemplate" target-entity="org.apache.roller.weblogger.pojos.WeblogTemplate">
                 <join-column name="templateId" insertable="true" updatable="true" nullable="false"/>

Modified: roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm (original)
+++ roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm Sun Jul 20 12:32:36 2014
@@ -12,10 +12,13 @@ create table custom_template_rendition (
     #columnNotNullWithDefault('type' 'varchar(16)' 'STANDARD')
 );
 
+#renameTable('webpage' 'weblog_custom_template')
+
+update weblog_custom_template set templatelang = 'VELOCITY' where templatelang = 'velocity';
+
 insert into custom_template_rendition(id, templateid, template, templatelang, type)
-select id, id, template, templatelang, 'STANDARD' from webpage;
+select id, id, template, templatelang, 'STANDARD' from weblog_custom_template;
 
-#renameTable('webpage' 'weblog_custom_template')
 #dropColumn('weblog_custom_template' 'template')
 #dropColumn('weblog_custom_template' 'templatelang')
 #dropColumn('weblog_custom_template' 'decorator')

Modified: roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java?rev=1612082&r1=1612081&r2=1612082&view=diff
==============================================================================
--- roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java (original)
+++ roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java Sun Jul 20 12:32:36 2014
@@ -25,7 +25,9 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.TestUtils;
 import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
+import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
@@ -106,13 +108,13 @@ public class CustomTemplateRenditionTest
            //create standard template coce
            CustomTemplateRendition standardTemplateCode = new CustomTemplateRendition(testPage.getId(), RenditionType.STANDARD);
            standardTemplateCode.setTemplate("standard.template.code");
-           standardTemplateCode.setTemplateLanguage("velocity");
+           standardTemplateCode.setTemplateLanguage(TemplateLanguage.VELOCITY);
            mgr.saveTemplateRendition(standardTemplateCode);
             //TestUtils.endSession(true);
            //create mobile code
            CustomTemplateRendition mobileTemplateCode = new CustomTemplateRendition(testPage.getId(), RenditionType.MOBILE);
            mobileTemplateCode.setTemplate("mobile.template.code");
-           mobileTemplateCode.setTemplateLanguage("velocity");
+           mobileTemplateCode.setTemplateLanguage(TemplateLanguage.VELOCITY);
            mgr.saveTemplateRendition(mobileTemplateCode);
              TestUtils.endSession(true);