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 01:35:26 UTC

svn commit: r1611984 [1/2] - in /roller/trunk/app/src: main/java/org/apache/roller/weblogger/business/plugins/entry/ main/java/org/apache/roller/weblogger/business/themes/ main/java/org/apache/roller/weblogger/pojos/ main/java/org/apache/roller/weblogg...

Author: gmazza
Date: Sat Jul 19 23:35:25 2014
New Revision: 1611984

URL: http://svn.apache.org/r1611984
Log:
ROL-2039 Rename webpage to weblog_custom_template, remove template, template lang, and decorator from this table as well, remove content type from custom_template_rendition and modify the theme.xmls of the theme to have this value at the template level, not the rendition/template code one.  Note some formatting issues in the code, I'm using space-formatting while some of the older files are tab-formatted, I didn't want to reformat them as it would make my changes less clear.

Modified:
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java
    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/SharedThemeTemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.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/business/themes/WeblogCustomTheme.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.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/Template.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ThemeTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/RollerResourceLoader.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/ThemeResourceLoader.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRenderer.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/StylesheetEdit.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml
    roller/trunk/app/src/main/resources/sql/500-to-510-migration.vm
    roller/trunk/app/src/main/resources/sql/createdb.vm
    roller/trunk/app/src/main/resources/sql/macros.vm
    roller/trunk/app/src/main/webapp/themes/basic/theme.xml
    roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml
    roller/trunk/app/src/main/webapp/themes/fauxcoly/theme.xml
    roller/trunk/app/src/main/webapp/themes/frontpage/theme.xml
    roller/trunk/app/src/main/webapp/themes/gaurav/theme.xml
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogPageTest.java

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/AcronymsPlugin.java Sat Jul 19 23:35:25 2014
@@ -27,6 +27,8 @@ import org.apache.commons.logging.LogFac
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
+import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
@@ -117,8 +119,8 @@ public class AcronymsPlugin implements W
     
     /**
      * Look for any _acronyms Page and parse it into Properties.
-     * @param website
-     * @return
+     * @param website blog whose acronyms page to look for
+     * @return properties list of acronyms
      */
     private Properties loadAcronyms(Weblog website) {
         Properties acronyms = new Properties();
@@ -127,7 +129,10 @@ public class AcronymsPlugin implements W
             WeblogTemplate acronymsPage = wmgr.getPageByName(
                     website, "_acronyms");
             if (acronymsPage != null) {
-                acronyms = parseAcronymPage(acronymsPage, acronyms);
+                CustomTemplateRendition ctr = acronymsPage.getTemplateRendition(TemplateRendition.RenditionType.STANDARD);
+                if (ctr != null) {
+                    acronyms = parseAcronymPage(ctr, acronyms);
+                }
             }
         } catch (WebloggerException e) {
             // not much we can do about it
@@ -143,7 +148,7 @@ public class AcronymsPlugin implements W
      *
      * @param text entry text
      * @param acronymPatterns user provided set of acronyms
-     * @param acronymTags
+     * @param acronymTags replacement HTML acronym tag.
      * @return entry text with acronym explanations
      */
     private String matchAcronyms(String text, Pattern[] acronymPatterns, String[] acronymTags) {
@@ -163,12 +168,12 @@ public class AcronymsPlugin implements W
      * Parse the Template of the provided WeblogTemplate and turns it
      * into a <code>Properties</code> collection.
      *
-     * @param acronymPage
+     * @param acronymPage Rendition holding the list of acronyms.
      * @return acronym properties (key = acronym, value= full text), empty if Template is empty
      */
-    private Properties parseAcronymPage(WeblogTemplate acronymPage, Properties acronyms) {
-        String rawAcronyms = acronymPage.getContents();
-        
+    private Properties parseAcronymPage(CustomTemplateRendition acronymPage, Properties acronyms) {
+        String rawAcronyms = acronymPage.getTemplate();
+
         if (LOG.isDebugEnabled()) {
             LOG.debug("parsing _acronyms template: \n'"+rawAcronyms+"'");
         }
@@ -177,18 +182,15 @@ public class AcronymsPlugin implements W
         String regex = "\n";
         String[] lines = rawAcronyms.split(regex);
         
-        if (lines != null) {
-            for (int i = 0; i < lines.length; i++) {
-                int index = lines[i].indexOf('=');
-                if (index > 0) {
-                    String key = lines[i].substring(0, index).trim();
-                    String value =
-                            lines[i].substring(index + 1, lines[i].length()).trim();
-                    acronyms.setProperty(key, value);
-                }
+        for (String line : lines) {
+            int index = line.indexOf('=');
+            if (index > 0) {
+                String key = line.substring(0, index).trim();
+                String value = line.substring(index + 1, line.length()).trim();
+                acronyms.setProperty(key, value);
             }
         }
-        
+
         return acronyms;
     }
     

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedTheme.java Sat Jul 19 23:35:25 2014
@@ -30,7 +30,7 @@ import java.util.List;
  * A SharedTheme is a theme implementation which is designed to be shared by
  * multiple weblogs using a common set of resources.
  */
-public abstract class SharedTheme implements Theme, Serializable, Comparable<SharedTheme> {
+public abstract class SharedTheme implements Theme, Serializable {
     
     protected String id = null;
     protected String name = null;
@@ -42,16 +42,11 @@ public abstract class SharedTheme implem
     public abstract List<ThemeResource> getResources();
     
     public abstract ThemeResource getPreviewImage();
-    
-    
-    /**
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
-    public int compareTo(SharedTheme other) {
+
+    public int compareTo(Theme other) {
         return getName().compareTo(other.getName());
     }
-    
-    
+
     public String getId() {
         return id;
     }

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -28,6 +28,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.*;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeResource;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
@@ -233,8 +234,6 @@ public class SharedThemeFromDir extends 
                 mobileTemplateCode = new ThemeMetadataTemplateRendition();
                 mobileTemplateCode.setContentsFile(standardTemplateCode
                         .getContentsFile());
-                mobileTemplateCode.setContentType(standardTemplateCode
-                        .getContentType());
                 mobileTemplateCode.setTemplateLang(standardTemplateCode
                         .getTemplateLang());
                 mobileTemplateCode.setType(RenditionType.MOBILE);
@@ -338,8 +337,6 @@ public class SharedThemeFromDir extends 
                 mobileTemplateCode = new ThemeMetadataTemplateRendition();
                 mobileTemplateCode.setContentsFile(standardTemplateCode
                         .getContentsFile());
-                mobileTemplateCode.setContentType(standardTemplateCode
-                        .getContentType());
                 mobileTemplateCode.setTemplateLang(standardTemplateCode
                         .getTemplateLang());
                 mobileTemplateCode.setType(RenditionType.MOBILE);
@@ -462,7 +459,6 @@ public class SharedThemeFromDir extends 
         templateCode
                 .setTemplateLanguage(templateCodeMetadata.getTemplateLang());
         templateCode.setType(templateCodeMetadata.getType());
-        templateCode.setContentType(templateCodeMetadata.getContentType());
         templateCode.setLastModified(new Date(templateFile.lastModified()));
 
         return templateCode;

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -33,7 +33,6 @@ public class SharedThemeTemplateRenditio
 	private String templateId = null;
 	private String template = null;
 	private RenditionType type = null;
-	private String contentType = null;
 	private String templateLanguage = null;
 	private Date lastModified = null;
 
@@ -97,13 +96,7 @@ public class SharedThemeTemplateRenditio
 	// ------------------------------------------------------- Good citizenship
 
 	public String toString() {
-		StringBuilder buf = new StringBuilder();
-		buf.append("{");
-		buf.append(this.templateId);
-		buf.append(", [ ").append(this.template);
-		buf.append("] , ").append(this.type);
-		buf.append("}");
-		return buf.toString();
+        return "{" + this.templateId + ", [ " + this.template +"] , " + this.type + "}";
 	}
 
 	public boolean equals(Object other) {
@@ -133,13 +126,4 @@ public class SharedThemeTemplateRenditio
 		this.templateLanguage = templateLanguage;
 	}
 
-	// @Override
-	public String getContentType() {
-		return contentType;
-	}
-
-	// @Override
-	public void setContentType(String contentType) {
-		this.contentType = contentType;
-	}
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java Sat Jul 19 23:35:25 2014
@@ -83,9 +83,6 @@ public class ThemeManagerImpl implements
 	// the Map contains ... (theme id, Theme)
 	private Map<String, Theme> themes = null;
 
-	// list of available types for templates
-	private static List<RenditionType> typeList = new ArrayList<RenditionType>();
-
 	@com.google.inject.Inject
 	protected ThemeManagerImpl(Weblogger roller) {
 
@@ -180,8 +177,7 @@ public class ThemeManagerImpl implements
 	 *      TODO: reimplement enabled vs. disabled logic once we support it
 	 */
 	public List<Theme> getEnabledThemesList() {
-
-		List allThemes = new ArrayList<Theme>(this.themes.values());
+		List<Theme> allThemes = new ArrayList<Theme>(this.themes.values());
 
 		// sort 'em ... default ordering for themes is by name
 		Collections.sort(allThemes);
@@ -246,13 +242,9 @@ public class ThemeManagerImpl implements
 				template.setName(themeTemplate.getName());
 				template.setDescription(themeTemplate.getDescription());
 				template.setLink(themeTemplate.getLink());
-				template.setContents(themeTemplate.getContents());
 				template.setHidden(themeTemplate.isHidden());
 				template.setNavbar(themeTemplate.isNavbar());
-				template.setTemplateLanguage(themeTemplate
-						.getTemplateLanguage());
-				// NOTE: decorators are deprecated starting in 4.0
-				template.setDecoratorName(null);
+                template.setOutputContentType(themeTemplate.getOutputContentType());
 				template.setLastModified(new Date());
 
 				// save it
@@ -278,9 +270,7 @@ public class ThemeManagerImpl implements
 					weblogTemplateCode.setType(type);
 					weblogTemplateCode.setTemplate(templateCode.getTemplate());
 					weblogTemplateCode.setTemplateLanguage(templateCode
-							.getTemplateLanguage());
-					weblogTemplateCode.setContentType(templateCode
-							.getContentType());
+                            .getTemplateLanguage());
 					WebloggerFactory.getWeblogger().getWeblogManager()
 							.saveTemplateRendition(weblogTemplateCode);
 				}
@@ -290,9 +280,7 @@ public class ThemeManagerImpl implements
 
 		// now, see if the weblog has left over action templates that
 		// need to be deleted because they aren't in their new theme
-		for (int i = 0; i < WeblogTemplate.ACTIONS.length; i++) {
-			String action = WeblogTemplate.ACTIONS[i];
-
+        for (String action : WeblogTemplate.ACTIONS) {
 			// if we didn't import this action then see if it should be deleted
 			if (!importedActionTemplates.contains(action)) {
 				WeblogTemplate toDelete = wmgr.getPageByAction(website, action);
@@ -321,8 +309,7 @@ public class ThemeManagerImpl implements
 						website, resource.getPath());
 				if (mdir == null) {
 					log.debug("    Creating directory: " + resource.getPath());
-					mdir = fileMgr.createMediaFileDirectory(website,
-							resource.getPath());
+					fileMgr.createMediaFileDirectory(website, resource.getPath());
 					roller.flush();
 				} else {
 					log.debug("    No action: directory already exists");

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -122,11 +122,10 @@ public class ThemeMetadataParser {
 		template.setName(element.getChildText("name"));
 		template.setDescription(element.getChildText("description"));
 		template.setLink(element.getChildText("link"));
-		template.setTemplateLanguage(element.getChildText("templateLanguage"));
 		template.setContentType(element.getChildText("contentType"));
-		template.setContentsFile(element.getChildText("contentsFile"));
+        template.setContentType(element.getChildText("contentType"));
 
-		//parsing tempaltecode segment
+		//parsing template code segment
 		List<Element> templateCodeList = element.getChildren("templateCode");
 
 		boolean roller50format = false;
@@ -149,21 +148,22 @@ public class ThemeMetadataParser {
             } else {
                 throw new ThemeParsingException("templateCode must contain a 'type' element");
             }
-            templateCode.setContentType(templateCodeElement.getChildText("contentType"));
 			template.addTemplateCode(templateCode.getType(), templateCode);
 
 			// if theme has type, then it's roller50format
 			roller50format = true;
 		}
 
-		// hack to ensure old format themes still work
+		// 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.addTemplateCode(RenditionType.STANDARD, templateCode); */
 		}
 
 		String navbar = element.getChildText("navbar");
@@ -184,8 +184,6 @@ public class ThemeMetadataParser {
 			throw new ThemeParsingException("templates must contain a 'name' element");
 		}
 
-
-
 		return template;
 	}
     
@@ -198,6 +196,7 @@ public class ThemeMetadataParser {
         template.setName(element.getChildText("name"));
         template.setDescription(element.getChildText("description"));
         template.setLink(element.getChildText("link"));
+        template.setContentType(element.getChildText("contentType"));
 
         // parsing templatecode segment
         List<Element> templateCodeList = element.getChildren("templateCode");
@@ -221,21 +220,22 @@ public class ThemeMetadataParser {
             } else {
                 throw new ThemeParsingException("templateCode must contain a 'type' element");
             }
-            templateCode.setContentType(templateCodeElement.getChildText("contentType"));
             template.addTemplateCode(templateCode.getType(), templateCode);
 
 			// if theme has type, then it's roller50format
 			roller50format = true;
         }
         
-		// hack to ensure old format themes still work
+		// 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.addTemplateCode(RenditionType.STANDARD, templateCode); */
 		}
 
         // validate template

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -34,9 +34,7 @@ public class ThemeMetadataTemplate {
     private String link = null;
     private boolean navbar = false;
     private boolean hidden = false;
-    private String templateLanguage = null;
     private String contentType = null;
-    private String contentsFile = null;
 
     // Hash table to keep metadata about parsed template code files
     private Map<RenditionType, ThemeMetadataTemplateRendition> templateCodeTable
@@ -90,14 +88,6 @@ public class ThemeMetadataTemplate {
         this.hidden = hidden;
     }
 
-    public String getTemplateLanguage() {
-        return templateLanguage;
-    }
-
-    public void setTemplateLanguage(String templateLanguage) {
-        this.templateLanguage = templateLanguage;
-    }
-
     public String getContentType() {
         return contentType;
     }
@@ -106,14 +96,6 @@ public class ThemeMetadataTemplate {
         this.contentType = contentType;
     }
 
-    public String getContentsFile() {
-        return contentsFile;
-    }
-
-    public void setContentsFile(String contentsFile) {
-        this.contentsFile = contentsFile;
-    }
-
     public void addTemplateCode(RenditionType type, ThemeMetadataTemplateRendition templateCode) {
         this.getTemplateCodeTable().put(type, templateCode);
     }

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -23,7 +23,6 @@ import org.apache.roller.weblogger.pojos
 
 public class ThemeMetadataTemplateRendition {
     private String templateLang = null;
-    private String contentType = null;
     private String contentsFile = null;
     private RenditionType type = null;
 
@@ -35,14 +34,6 @@ public class ThemeMetadataTemplateRendit
         this.templateLang = templateLang;
     }
 
-    public String getContentType() {
-        return contentType;
-    }
-
-    public void setContentType(String contentType) {
-        this.contentType = contentType;
-    }
-
     public String getContentsFile() {
         return contentsFile;
     }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java Sat Jul 19 23:35:25 2014
@@ -25,6 +25,7 @@ import org.apache.roller.weblogger.busin
 import java.util.Date;
 import java.util.List;
 import org.apache.roller.weblogger.pojos.MediaFile;
+import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeResource;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
@@ -67,8 +68,11 @@ public class WeblogCustomTheme extends W
     public boolean isEnabled() {
         return true;
     }
-    
-    
+
+    public int compareTo(Theme other) {
+        return getName().compareTo(other.getName());
+    }
+
     /**
      * Get the collection of all templates associated with this Theme.
      */

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogSharedTheme.java Sat Jul 19 23:35:25 2014
@@ -26,6 +26,7 @@ import org.apache.roller.weblogger.busin
 
 import java.util.*;
 import org.apache.roller.weblogger.pojos.MediaFile;
+import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeResource;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
@@ -40,8 +41,7 @@ public class WeblogSharedTheme extends W
     private static Log log = LogFactory.getLog(WeblogSharedTheme.class);
     
     private SharedTheme theme = null;
-    
-    
+
     public WeblogSharedTheme(Weblog weblog, SharedTheme theme) {
         super(weblog);
         this.theme = theme;
@@ -67,8 +67,11 @@ public class WeblogSharedTheme extends W
     public boolean isEnabled() {
         return this.theme.isEnabled();
     }
-    
-    
+
+    public int compareTo(Theme other) {
+        return theme.compareTo(other);
+    }
+
     /**
      * Get the collection of all templates associated with this Theme.
      */

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -35,7 +35,6 @@ public class CustomTemplateRendition imp
 	// template contents
 	private String template = null;
 	private RenditionType type = null;
-	private String contentType = null;
 	private String templateLanguage = null;
 
 	public CustomTemplateRendition(String templateId, RenditionType type) {
@@ -87,14 +86,10 @@ public class CustomTemplateRendition imp
 	// ------------------------------------------------------- Good citizenship
 
 	public String toString() {
-		StringBuilder buf = new StringBuilder();
-		buf.append("{");
-		buf.append(getId());
-		buf.append(", ").append(getTemplateId());
-		buf.append(", [ ").append(getTemplate());
-		buf.append("] , ").append(getType());
-		buf.append("}");
-		return buf.toString();
+        return "{" + getId()
+                + ", " + getTemplateId()
+                + ", [ " + getTemplate()
+                + "] , " + getType() + "}";
 	}
 
 	public boolean equals(Object other) {
@@ -124,13 +119,4 @@ public class CustomTemplateRendition imp
 		this.templateLanguage = templateLanguage;
 	}
 
-	// @Override
-	public String getContentType() {
-		return contentType;
-	}
-
-	// @Override
-	public void setContentType(String contentType) {
-		this.contentType = contentType;
-	}
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Template.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Template.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Template.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Template.java Sat Jul 19 23:35:25 2014
@@ -56,19 +56,6 @@ public interface Template {
     
     
     /**
-     * The templating language used by this template.
-     */
-
-    String getTemplateLanguage();
-
-    /**
-     * Set the template language.This is used by template code object to assign
-     * correct template language for different template content types
-     */
-    void setTemplateLanguage(String templateLanguage);
-    
-    
-    /**
      * Content-type of output or null if none defined.
      */
     String getOutputContentType();

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -25,8 +25,6 @@ public interface TemplateRendition {
 
     public enum RenditionType {STANDARD, MOBILE}
 
-    String getContentType();
-
     String getTemplate();
 
     String getTemplateId();
@@ -35,8 +33,6 @@ public interface TemplateRendition {
 
     RenditionType getType();
 
-    void setContentType(String contentType);
-
     void setTemplate(String template);
 
     void setTemplateId(String templateId);
@@ -44,5 +40,4 @@ public interface TemplateRendition {
     void setTemplateLanguage(String templateLanguage);
 
     void setType(RenditionType type);
-
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java Sat Jul 19 23:35:25 2014
@@ -28,7 +28,7 @@ import java.util.List;
  * A Theme represents the set of components which are used to generate the
  * web design for a weblog along with some metadata like a name, etc.
  */
-public interface Theme {
+public interface Theme extends Comparable<Theme> {
     
     /**
      * A unique identifier for this Theme.
@@ -103,5 +103,5 @@ public interface Theme {
      * Returns null if the resource cannot be found.
      */
     ThemeResource getResource(String path);
-    
+
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ThemeTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ThemeTemplate.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ThemeTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ThemeTemplate.java Sat Jul 19 23:35:25 2014
@@ -49,17 +49,6 @@ public interface ThemeTemplate extends T
     
     
     /**
-     * The contents or body of the Template.
-     */
-    String getContents();
-
-    /**
-     * set content. This will be used by template code objects to store different
-     * types of template contents
-     */
-    void setContents(String contents);
-
-    /**
      * The url link value for this Template.  If this template is not
      * private this is the url that it can be accessed at.
      */
@@ -76,18 +65,5 @@ public interface ThemeTemplate extends T
      * Is the Template to be included in the navbar?
      */
     boolean isNavbar();
-    
-    
-    /**
-     * The name of the decorator template to apply.
-     */
-    String getDecoratorName();
-    
-    
-    /**
-     * The decorator Template to apply.  This returns null if no decorator
-     * should be applied.
-     */
-    ThemeTemplate getDecorator();
 
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java Sat Jul 19 23:35:25 2014
@@ -20,8 +20,6 @@ package org.apache.roller.weblogger.pojo
 
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.roller.util.UUIDGenerator;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.WebloggerFactory;
@@ -31,7 +29,6 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
 
-
 /**
  * POJO that represents a single user defined template page.
  *
@@ -43,8 +40,7 @@ public class WeblogTemplate implements T
     public static final long serialVersionUID = -613737191638263428L;
     public static final String DEFAULT_PAGE = "Weblog";
     
-    private static Log log = LogFactory.getLog(WeblogTemplate.class);
-    private static Set requiredTemplates = null;
+    private static Set<String> requiredTemplates = null;
     
     // attributes
     private String id = UUIDGenerator.generateUUID();
@@ -52,41 +48,22 @@ public class WeblogTemplate implements T
     private String  name = null;
     private String  description = null;
     private String  link = null;
-    private String  contents = null;
     private Date    lastModified = null;
-    private String  templateLanguage = null;
     private boolean hidden = false;
     private boolean navbar = false;
-    private String  decoratorName = null;
     private String  outputContentType = null;
-    private String  type = null;
-    
+
     // associations
     private Weblog weblog = null;
 
     static {
-        requiredTemplates = new HashSet();
+        requiredTemplates = new HashSet<String>();
         requiredTemplates.add("Weblog");
         requiredTemplates.add("_day");
     }
-    
-    
+
     public WeblogTemplate() {}
     
-    
-    public ThemeTemplate getDecorator() {
-        if(getDecoratorName() != null && !getId().equals(getDecoratorName())) {
-            try {
-                return weblog.getTheme().getTemplateByName(getDecoratorName());
-            } catch (WebloggerException ex) {
-                log.error("Error getting decorator["+getDecoratorName()+"] "+
-                        "for template "+getId());
-            }
-        }
-        return null;
-    }
-    
-    
     public String getId() {
         return this.id;
     }
@@ -94,8 +71,7 @@ public class WeblogTemplate implements T
     public void setId( String id ) {
         this.id = id;
     }
-    
-    
+
     public Weblog getWebsite() {
         return this.weblog;
     }
@@ -111,8 +87,7 @@ public class WeblogTemplate implements T
     public void setAction(String action) {
         this.action = action;
     }
-    
-    
+
     public String getName() {
         return this.name;
     }
@@ -120,8 +95,7 @@ public class WeblogTemplate implements T
     public void setName( String name ) {
         this.name = name;
     }
-    
-    
+
     public String getDescription() {
         return this.description;
     }
@@ -129,8 +103,7 @@ public class WeblogTemplate implements T
     public void setDescription( String description ) {
         this.description = description;
     }
-    
-    
+
     public String getLink() {
         return this.link;
     }
@@ -138,17 +111,7 @@ public class WeblogTemplate implements T
     public void setLink( String link ) {
         this.link = link;
     }
-    
-    
-    public String getContents() {
-        return this.contents;
-    }
-    
-    public void setContents( String template ) {
-        this.contents = template;
-    }
-    
-    
+
     public Date getLastModified() {
         return lastModified;
     }
@@ -156,17 +119,7 @@ public class WeblogTemplate implements T
     public void setLastModified(final Date newtime ) {
         lastModified = newtime;
     }
-    
-    
-    public String getTemplateLanguage() {
-        return templateLanguage;
-    }
 
-    public void setTemplateLanguage(String templateLanguage) {
-        this.templateLanguage = templateLanguage;
-    }
-    
-    
     public boolean isNavbar() {
         return navbar;
     }
@@ -174,8 +127,7 @@ public class WeblogTemplate implements T
     public void setNavbar(boolean navbar) {
         this.navbar = navbar;
     }
-    
-    
+
     public boolean isHidden() {
         return hidden;
     }
@@ -183,18 +135,8 @@ public class WeblogTemplate implements T
     public void setHidden(boolean isHidden) {
         this.hidden = isHidden;
     }
-        
-    
-    public String getDecoratorName() {
-        return decoratorName;
-    }
 
-    public void setDecoratorName(String decorator) {
-        this.decoratorName = decorator;
-    }
-    
-    
-    /** 
+    /**
      * Content-type rendered by template or null for auto-detection by link extension.
      */
     public String getOutputContentType() {
@@ -223,8 +165,7 @@ public class WeblogTemplate implements T
         */
         return (requiredTemplates.contains(getName()) || "Weblog".equals(getLink()));
     }
-    
-    
+
     /**
      * A convenience method for testing if this template represents a 'custom'
      * template, meaning a template with action = ACTION_CUSTOM.
@@ -237,27 +178,10 @@ public class WeblogTemplate implements T
         return WebloggerFactory.getWeblogger().getWeblogManager().getTemplateRenditionByType(getId(), type);
     }
 
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    
     //------------------------------------------------------- Good citizenship
 
     public String toString() {
-        StringBuilder buf = new StringBuilder();
-        buf.append("{");
-        buf.append(getId());
-        buf.append(", ").append(getName());
-        buf.append(", ").append(getLink());
-        buf.append(", ").append(getDecoratorName());
-        buf.append(", ").append(getTemplateLanguage());
-        buf.append("}");
-        return buf.toString();
+        return "{" + getId() + ", " + getName() + ", " + getLink() + "}";
     }
 
     public boolean equals(Object other) {

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper.java Sat Jul 19 23:35:25 2014
@@ -52,17 +52,12 @@ public final class ThemeTemplateWrapper 
         return this.pojo.getName();
     }
     
-    
+
     public String getDescription() {
         return this.pojo.getDescription();
     }
     
     
-    public String getContents() {
-        return this.pojo.getContents();
-    }
-    
-    
     public String getLink() {
         return this.pojo.getLink();
     }
@@ -71,8 +66,8 @@ public final class ThemeTemplateWrapper 
     public Date getLastModified() {
         return this.pojo.getLastModified();
     }
-    
-    
+
+
     public boolean isHidden() {
         return this.pojo.isHidden();
     }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/RollerResourceLoader.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/RollerResourceLoader.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/RollerResourceLoader.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/RollerResourceLoader.java Sat Jul 19 23:35:25 2014
@@ -87,12 +87,10 @@ public class RollerResourceLoader extend
 				throw new ResourceNotFoundException(
 						"RollerResourceLoader: page \"" + name + "\" not found");
 			}
-			String contents;
+			String contents = "";
 			TemplateRendition templateCode = page.getTemplateRendition(renditionType);
 			if (templateCode != null) {
 				contents = templateCode.getTemplate();
-			} else {
-				contents = page.getContents();
 			}
 			return new ByteArrayInputStream(contents.getBytes("UTF-8"));
 

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/ThemeResourceLoader.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/ThemeResourceLoader.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/ThemeResourceLoader.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/ThemeResourceLoader.java Sat Jul 19 23:35:25 2014
@@ -101,7 +101,8 @@ public class ThemeResourceLoader extends
             if (template.getTemplateRendition(renditionType) != null) {
                 contents = template.getTemplateRendition(renditionType).getTemplate();
             } else {
-                contents = template.getContents();
+                throw new ResourceNotFoundException("Rendering [" + renditionType.name()
+                        + "] of Template [" + split[1] + "] not found.");
             }
 
             if (log.isDebugEnabled()) {

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRenderer.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRenderer.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRenderer.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/velocity/VelocityRenderer.java Sat Jul 19 23:35:25 2014
@@ -26,7 +26,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.util.RollerConstants;
 import org.apache.roller.weblogger.pojos.Template;
-import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RenderingException;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
@@ -69,17 +68,6 @@ public class VelocityRenderer implements
             velocityTemplate = RollerVelocity.getTemplate(template.getId(),
                     deviceType, "UTF-8");
 
-            // if this is a ThemeTemplate than look for a decorator too
-            if (template instanceof ThemeTemplate) {
-                ThemeTemplate templ = (ThemeTemplate) template;
-
-                Template decorator = templ.getDecorator();
-                if (decorator != null) {
-                    velocityDecorator = RollerVelocity.getTemplate(
-                            decorator.getId(), "UTF-8");
-                }
-            }
-
         } catch (ResourceNotFoundException ex) {
             // velocity couldn't find the resource so lets log a warning
             log.warn("Error creating renderer for " + template.getId()

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -20,7 +20,10 @@ package org.apache.roller.weblogger.ui.r
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.roller.weblogger.WebloggerException;
 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.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RendererFactory;
 import org.apache.roller.weblogger.ui.rendering.mobile.MobileDeviceRepository;
@@ -35,14 +38,24 @@ public class VelocityRendererFactory imp
     public Renderer getRenderer(Template template, 
 			MobileDeviceRepository.DeviceType deviceType) {
         Renderer renderer = null;
-        
+        TemplateRendition tr;
+
+        if (template == null || template.getId() == null) {
+            return null;
+        }
+
         // nothing we can do with null values
-        if (template.getTemplateLanguage() == null || template.getId() == null) {
+        try {
+            tr = template.getTemplateRendition(RenditionType.STANDARD);
+        } catch (WebloggerException e) {
+            return null;
+        }
+
+        if (tr == null) {
             return null;
         }
         
-        if ("velocity".equals(template.getTemplateLanguage())) { 
-            
+        if ("velocity".equals(tr.getTemplateLanguage())) {
             // standard velocity template
             try {
                renderer = new VelocityRenderer(template, deviceType);
@@ -55,5 +68,4 @@ public class VelocityRendererFactory imp
         }
         return renderer;
     }
-    
 }

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java Sat Jul 19 23:35:25 2014
@@ -97,29 +97,27 @@ public class StylesheetEdit extends UIAc
                     stylesheetTmpl.setName(stylesheet.getName());
                     stylesheetTmpl.setDescription(stylesheet.getDescription());
                     stylesheetTmpl.setLink(stylesheet.getLink());
-                    stylesheetTmpl.setContents(stylesheet.getContents());
                     stylesheetTmpl.setHidden(false);
                     stylesheetTmpl.setNavbar(false);
                     stylesheetTmpl.setLastModified(new Date());
-                    stylesheetTmpl.setTemplateLanguage(stylesheet
-                            .getTemplateLanguage());
 
-                    // create template codes for available template code Types
-                    CustomTemplateRendition standardRendition = new CustomTemplateRendition(
-                            stylesheetTmpl.getId(), RenditionType.STANDARD);
-                    standardRendition.setTemplate(stylesheetTmpl
-                            .getContents());
-                    standardRendition.setTemplateLanguage(stylesheetTmpl
-                            .getTemplateLanguage());
-                    WebloggerFactory.getWeblogger().getWeblogManager()
-                            .saveTemplateRendition(standardRendition);
+                    // create renditions for available rendition types
+                    TemplateRendition sCode = stylesheet.getTemplateRendition(RenditionType.STANDARD);
+                    if (sCode != null) {
+                        CustomTemplateRendition standardRendition = new CustomTemplateRendition(
+                                stylesheetTmpl.getId(), RenditionType.STANDARD);
+                        standardRendition.setTemplate(sCode.getTemplate());
+                        standardRendition.setTemplateLanguage(sCode.getTemplateLanguage());
+                        WebloggerFactory.getWeblogger().getWeblogManager()
+                                .saveTemplateRendition(standardRendition);
+                    }
 
-                    TemplateRendition tCode = stylesheet.getTemplateRendition(RenditionType.MOBILE);
-                    if (tCode != null) {
+                    TemplateRendition mCode = stylesheet.getTemplateRendition(RenditionType.MOBILE);
+                    if (mCode != null) {
                         CustomTemplateRendition mobileRendition = new CustomTemplateRendition(
                                 stylesheetTmpl.getId(), RenditionType.MOBILE);
-                        mobileRendition.setTemplate(tCode.getTemplate());
-                        mobileRendition.setTemplateLanguage(tCode
+                        mobileRendition.setTemplate(mCode.getTemplate());
+                        mobileRendition.setTemplateLanguage(mCode
                                 .getTemplateLanguage());
                         WebloggerFactory.getWeblogger().getWeblogManager()
                                 .saveTemplateRendition(mobileRendition);
@@ -176,7 +174,7 @@ public class StylesheetEdit extends UIAc
                 setContentsStandard(getTemplate().getTemplateRendition(
                         RenditionType.STANDARD).getTemplate());
             } else {
-                setContentsStandard(getTemplate().getContents());
+                setContentsStandard("");
             }
             if (getTemplate().getTemplateRendition(RenditionType.MOBILE) != null) {
                 setContentsMobile(getTemplate().getTemplateRendition(
@@ -223,7 +221,7 @@ public class StylesheetEdit extends UIAc
                     // otherwise create it, then set it
                     CustomTemplateRendition tc = new CustomTemplateRendition(
                             stylesheet.getId(), RenditionType.STANDARD);
-                    tc.setTemplate(stylesheet.getContents());
+                    tc.setTemplate("");
                     WebloggerFactory.getWeblogger().getWeblogManager()
                             .saveTemplateRendition(tc);
                 }
@@ -236,12 +234,8 @@ public class StylesheetEdit extends UIAc
                             .saveTemplateRendition(tc);
                 }
 
-                // TODO do we still want to set the contents here?
-                stylesheet.setContents(getContentsStandard());
-
                 // save template and flush
-                WebloggerFactory.getWeblogger().getWeblogManager()
-                        .savePage(stylesheet);
+                WebloggerFactory.getWeblogger().getWeblogManager().savePage(stylesheet);
 
                 WebloggerFactory.getWeblogger().flush();
 
@@ -299,9 +293,6 @@ public class StylesheetEdit extends UIAc
                             .setTemplate(templateCode.getTemplate());
                     WebloggerFactory.getWeblogger().getWeblogManager()
                             .saveTemplateRendition(existingTemplateCode);
-
-                    // TODO do we still want to set the contents here?
-                    stylesheet.setContents(templateCode.getTemplate());
                 }
                 if (stylesheet.getTemplateRendition(RenditionType.MOBILE) != null) {
                     TemplateRendition templateCode = theme.getStylesheet()

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java Sat Jul 19 23:35:25 2014
@@ -161,25 +161,25 @@ public class TemplateEditBean {
         } else { 
             // otherwise create it, then set it
             CustomTemplateRendition tc = new CustomTemplateRendition(dataHolder.getId(), RenditionType.STANDARD);
-			tc.setTemplate(dataHolder.getContents());
+			tc.setTemplate("");
             WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(tc);
         }
 
         if (dataHolder.getTemplateRendition(RenditionType.MOBILE) != null) {
             CustomTemplateRendition tc = dataHolder.getTemplateRendition(RenditionType.MOBILE);
             tc.setTemplate(contentsMobile);
+            WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(tc);
         }
 
-        // the rest of the template properties can only be modified when
+        // the rest of the template properties can be modified only when
         // dealing with a CUSTOM weblog template
-        if(dataHolder.isCustom()) {
+        if (dataHolder.isCustom()) {
             dataHolder.setName(getName());
             dataHolder.setAction(getAction());
             dataHolder.setDescription(getDescription());
             dataHolder.setLink(getLink());
             dataHolder.setNavbar(isNavbar());
             dataHolder.setHidden(isHidden());
-            dataHolder.setTemplateLanguage(getTemplateLanguage());
         }
     }
     
@@ -194,7 +194,7 @@ public class TemplateEditBean {
         if (dataHolder.getTemplateRendition(RenditionType.STANDARD) != null) {
             this.contentsStandard = dataHolder.getTemplateRendition(RenditionType.STANDARD).getTemplate();
         } else {
-            this.contentsStandard = dataHolder.getContents();
+            this.contentsStandard = "";
         }
         if (dataHolder.getTemplateRendition(RenditionType.MOBILE) != null) {
             this.contentsMobile = dataHolder.getTemplateRendition(RenditionType.MOBILE).getTemplate();
@@ -203,7 +203,6 @@ public class TemplateEditBean {
 
         this.navbar = dataHolder.isNavbar();
         this.hidden = dataHolder.isHidden();
-        this.templateLanguage = dataHolder.getTemplateLanguage();
         setManualContentType(dataHolder.getOutputContentType());
         if(getManualContentType() != null) {
             setAutoContentType(Boolean.FALSE);

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -146,7 +146,6 @@ public class Templates extends UIAction 
                 newTemplate.setAction(getNewTmplAction());
                 newTemplate.setName(getNewTmplName());
                 newTemplate.setDescription(newTemplate.getName());
-                newTemplate.setContents(getText("pageForm.newTemplateContent"));
                 newTemplate.setHidden(false);
                 newTemplate.setNavbar(false);
                 newTemplate.setLastModified(new Date());
@@ -161,14 +160,6 @@ public class Templates extends UIAction 
                     newTemplate.setName(WeblogTemplate.DEFAULT_PAGE);
                 }
 
-                // all templates start out as velocity templates
-                newTemplate.setTemplateLanguage("velocity");
-
-                // for now, all templates just use _decorator
-                if (!"_decorator".equals(newTemplate.getName())) {
-                    newTemplate.setDecoratorName("_decorator");
-                }
-
                 // save the new Template
                 WebloggerFactory.getWeblogger().getWeblogManager()
                         .savePage(newTemplate);
@@ -176,7 +167,7 @@ public class Templates extends UIAction 
                 // Create weblog template codes for available types.
                 CustomTemplateRendition standardRendition = new CustomTemplateRendition(
                         newTemplate.getId(), RenditionType.STANDARD);
-                standardRendition.setTemplate(newTemplate.getContents());
+                standardRendition.setTemplate(getText("pageForm.newTemplateContent"));
                 standardRendition.setTemplateLanguage("velocity");
                 WebloggerFactory.getWeblogger().getWeblogManager()
                         .saveTemplateRendition(standardRendition);

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java Sat Jul 19 23:35:25 2014
@@ -35,6 +35,8 @@ import org.apache.roller.weblogger.busin
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogEntryManager;
+import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
+import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
 import org.apache.roller.weblogger.pojos.WeblogEntry.PubStatus;
@@ -138,20 +140,25 @@ public class BloggerAPIHandler extends B
         
         validate(blogid, userid, password);
         
-        if (! templateType.equals("main")) {
+        if (!templateType.equals("main")) {
             throw new XmlRpcException(
-                    UNKNOWN_EXCEPTION, "Roller only supports main template");
+                    UNKNOWN_EXCEPTION, "Roller supports only main template");
         }
         
         try {
             WeblogTemplate page = WebloggerFactory.getWeblogger().getWeblogManager().getPage(templateType);
-            page.setContents(templateData);
-            WebloggerFactory.getWeblogger().getWeblogManager().savePage(page);
-            flushPageCache(page.getWebsite());
-            
-            return true;
+            CustomTemplateRendition ctr = page.getTemplateRendition(RenditionType.STANDARD);
+            if (ctr != null) {
+                ctr.setTemplate(templateData);
+                WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(ctr);
+                flushPageCache(page.getWebsite());
+                return true;
+            } else {
+                mLogger.error("Cannot find standard rendering for template.");
+                return false;
+            }
         } catch (WebloggerException e) {
-            String msg = "ERROR in BlooggerAPIHander.setTemplate";
+            String msg = "ERROR in BloggerAPIHander.setTemplate";
             mLogger.error(msg,e);
             throw new XmlRpcException(UNKNOWN_EXCEPTION,msg);
         }
@@ -182,12 +189,15 @@ public class BloggerAPIHandler extends B
         validate(blogid, userid,password);
         
         try {
+            CustomTemplateRendition ctr = null;
             WeblogTemplate page = WebloggerFactory.getWeblogger().getWeblogManager().getPage(templateType);
-            
-            if ( null == page ) {
-                throw new XmlRpcException(UNKNOWN_EXCEPTION,"Template not found");
+            if (page != null) {
+                ctr = page.getTemplateRendition(RenditionType.STANDARD);
+            }
+            if (null == ctr) {
+                throw new XmlRpcException(UNKNOWN_EXCEPTION,"Standard rendering of template not found");
             } else {
-                return page.getContents();
+                return ctr.getTemplate();
             }
         } catch (Exception e) {
             String msg = "ERROR in BlooggerAPIHander.getTemplate";

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -30,9 +30,9 @@
             <basic name="templateLanguage">
                 <column name="templatelang" insertable="true" updatable="true" unique="false"/>
             </basic>
-            <basic name="contentType">
-                <column name="contenttype" insertable="true" updatable="true" unique="false"/>
-            </basic>
+            <!--many-to-one name="weblogTemplate" target-entity="org.apache.roller.weblogger.pojos.WeblogTemplate">
+                <join-column name="templateId" insertable="true" updatable="true" nullable="false"/>
+            </many-to-one-->
         </attributes>
     </entity>
 </entity-mappings>

Modified: roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml Sat Jul 19 23:35:25 2014
@@ -6,7 +6,7 @@
     <package>org.apache.roller.weblogger.pojos</package>
     <entity metadata-complete="true" name="WeblogTemplate"
             class="org.apache.roller.weblogger.pojos.WeblogTemplate"  access="PROPERTY">
-        <table name="webpage"/>
+        <table name="weblog_custom_template"/>
         <named-query name="WeblogTemplate.getByWebsite">
             <query>SELECT w FROM WeblogTemplate w WHERE w.website = ?1</query>
         </named-query>
@@ -39,35 +39,24 @@
             <basic name="link">
                 <column name="link" insertable="true" updatable="true" unique="false"/>
             </basic>
-            <basic name="contents">
-                <column name="template" insertable="true" updatable="true" unique="false"/>
-            </basic>
             <basic name="lastModified">
                 <column name="updatetime" insertable="true" updatable="true" unique="false"/>
                 <temporal>TIMESTAMP</temporal>
             </basic>
-            <basic name="templateLanguage">
-                <column name="templatelang" insertable="true" updatable="true" unique="false"/>
-            </basic>
             <basic name="navbar">
                 <column name="navbar" insertable="true" updatable="true" unique="false"/>
             </basic>
             <basic name="hidden">
                 <column name="hidden" insertable="true" updatable="true" unique="false"/>
             </basic>
-            <basic name="decoratorName">
-                <column name="decorator" insertable="true" updatable="true" unique="false"/>
-            </basic>
             <basic name="outputContentType">
                 <column name="outputtype" insertable="true" updatable="true" unique="false"/>
             </basic>
             <many-to-one name="website" target-entity="org.apache.roller.weblogger.pojos.Weblog">
                 <join-column name="websiteid" insertable="true" updatable="true" nullable="false"/>
             </many-to-one>
-            
             <transient name="custom"/>
             <transient name="required"/>
-            <transient name="decorator"/>
         </attributes>
     </entity>
 </entity-mappings>

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=1611984&r1=1611983&r2=1611984&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 Sat Jul 19 23:35:25 2014
@@ -9,11 +9,18 @@ create table custom_template_rendition (
     templateid varchar(48) not null,
     template     $db.TEXT_SQL_TYPE not null,
     templatelang varchar(48),
-    contenttype  varchar(48),
-    #columnNotNullWithDefault('type' 'varchar(16)' 'standard')
+    #columnNotNullWithDefault('type' 'varchar(16)' 'STANDARD')
 );
 
-#addColumnNull("webpage" "type"  "varchar(16)")
+insert into custom_template_rendition(id, templateid, template, templatelang, contenttype, type)
+select id, id, template, templatelang, outputtype, 'STANDARD' from webpage;
+
+#renameTable('webpage', 'weblog_custom_template')
+#dropColumn('weblog_custom_template', 'template')
+#dropColumn('weblog_custom_template', 'templatelang')
+#dropColumn('weblog_custom_template', 'decorator')
+
+
 #addColumnNull("weblogentry" "search_description"  "varchar(255)")
 
 -- Removal of subcategories means no more path and parentid columns

Modified: roller/trunk/app/src/main/resources/sql/createdb.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/createdb.vm?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/createdb.vm (original)
+++ roller/trunk/app/src/main/resources/sql/createdb.vm Sat Jul 19 23:35:25 2014
@@ -78,26 +78,6 @@ create table usercookie (
 create index uc_username_idx on usercookie( username$!db.INDEXSIZE );
 create index uc_cookieid_idx on usercookie( cookieid$!db.INDEXSIZE );
 
-create table webpage (
-    id              varchar(48)  not null primary key,
-    name            varchar(255)  not null,
-    description     varchar(255),
-    link            varchar(255),
-    websiteid       varchar(48) not null,
-    template        $db.TEXT_SQL_TYPE not null,
-    updatetime      $db.TIMESTAMP_SQL_TYPE not null,
-    hidden          $db.BOOLEAN_SQL_TYPE_FALSE not null,
-    navbar          $db.BOOLEAN_SQL_TYPE_FALSE not null,
-    templatelang    varchar(20) not null,
-    decorator       varchar(255) default null,
-    outputtype      varchar(48) default null,
-    type            varchar(16) default null,
-    #columnNotNullWithDefault('action' 'varchar(16)' 'custom')
-);
-create index wp_name_idx on webpage( name$!db.INDEXSIZE );
-create index wp_link_idx on webpage( link$!db.INDEXSIZE );
-create index wp_id_idx on webpage( websiteid );
-
 create table website (
     id                varchar(48) not null primary key,
     name              varchar(255) not null,
@@ -139,16 +119,28 @@ create table website (
 create index ws_isenabled_idx on website(isenabled);
 alter table website add constraint ws_handle_uq unique (handle$!db.INDEXSIZE);
 
--- This index is not necessary because of handle is already a primary key.
--- create index ws_handle_idx    on website(handle);
+create table weblog_custom_template (
+    id              varchar(48)  not null primary key,
+    name            varchar(255)  not null,
+    description     varchar(255),
+    link            varchar(255),
+    websiteid       varchar(48) not null,
+    updatetime      $db.TIMESTAMP_SQL_TYPE not null,
+    hidden          $db.BOOLEAN_SQL_TYPE_FALSE not null,
+    navbar          $db.BOOLEAN_SQL_TYPE_FALSE not null,
+    outputtype      varchar(48) default null,
+    #columnNotNullWithDefault('action' 'varchar(16)' 'custom')
+);
+create index wp_name_idx on weblog_custom_template(name$!db.INDEXSIZE);
+create index wp_link_idx on weblog_custom_template(link$!db.INDEXSIZE);
+create index wp_id_idx on weblog_custom_template(websiteid);
 
 create table custom_template_rendition (
     id           varchar(48)  not null primary key,
-    templateid varchar(48) not null,
+    templateid   varchar(48) not null,
     template     $db.TEXT_SQL_TYPE not null,
     templatelang varchar(48),
-    contenttype  varchar(48),
-    #columnNotNullWithDefault('type' 'varchar(16)' 'standard')
+    #columnNotNullWithDefault('type' 'varchar(16)' 'STANDARD')
 );
 
 create table folder (
@@ -481,7 +473,7 @@ create table roller_mediafiledir (
 
 -- page, entry, category, comment
 
-alter table webpage add constraint wp_websiteid_fk
+alter table weblog_custom_template add constraint wp_websiteid_fk
     foreign key ( websiteid ) references website( id ) $!db.ADDL_FK_PARAMS ;
 
 alter table weblogentry add constraint we_websiteid_fk

Modified: roller/trunk/app/src/main/resources/sql/macros.vm
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/macros.vm?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/macros.vm (original)
+++ roller/trunk/app/src/main/resources/sql/macros.vm Sat Jul 19 23:35:25 2014
@@ -104,9 +104,9 @@ Macro to account for lack of comparable 
 
 
 #macro(dropIndex $tableName $indexName)
-#if ($db.DBTYPE == "DERBY" || $db.DBTYPE == 'POSTGRESQL')
+#if ($db.DBTYPE == 'POSTGRESQL')
 drop index $indexName;
-#elseif ($db.DBTYPE == "MYSQL")
+#elseif ($db.DBTYPE == "DERBY" || $db.DBTYPE == "MYSQL")
 alter table $tableName drop foreign key $indexName;
 #else
 drop index $indexName on $tableName;

Modified: roller/trunk/app/src/main/webapp/themes/basic/theme.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/basic/theme.xml?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/basic/theme.xml (original)
+++ roller/trunk/app/src/main/webapp/themes/basic/theme.xml Sat Jul 19 23:35:25 2014
@@ -14,9 +14,9 @@
         <name>basic-custom.css</name>
         <description>Stylesheet for Basic theme</description>
         <link>basic-custom.css</link>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>basic-custom.css</contentsFile>
             <type>standard</type>
         </templateCode>
@@ -29,9 +29,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>weblog.vm</contentsFile>
             <type>standard</type>
         </templateCode>
@@ -43,9 +43,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>permalink.vm</contentsFile>
             <type>standard</type>
         </templateCode>
@@ -57,9 +57,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>searchresults.vm</contentsFile>
             <type>standard</type>
         </templateCode>
@@ -71,9 +71,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>_day.vm</contentsFile>
             <type>standard</type>
         </templateCode>
@@ -85,9 +85,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>sidebar.vm</contentsFile>
             <type>standard</type>
         </templateCode>

Modified: roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml (original)
+++ roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml Sat Jul 19 23:35:25 2014
@@ -17,15 +17,14 @@
         <name>basic-custom.css</name>
         <description>Stylesheet for Basic theme</description>
         <link>basic-custom.css</link>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>basic-custom.css</contentsFile>
             <type>standard</type>
         </templateCode>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>basic-mobile-custom.css</contentsFile>
             <type>mobile</type>
         </templateCode>
@@ -38,15 +37,14 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>weblog.vm</contentsFile>
             <type>standard</type>
         </templateCode>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>weblog-mobile.vm</contentsFile>
             <type>mobile</type>
         </templateCode>
@@ -58,15 +56,14 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>permalink.vm</contentsFile>
             <type>standard</type>
         </templateCode>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>permalink-mobile.vm</contentsFile>
             <type>mobile</type>
         </templateCode>
@@ -78,15 +75,14 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>searchresults.vm</contentsFile>
             <type>standard</type>
         </templateCode>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>searchresults-mobile.vm</contentsFile>
             <type>mobile</type>
         </templateCode>
@@ -98,15 +94,14 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>_day.vm</contentsFile>
             <type>standard</type>
         </templateCode>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>_day-mobile.vm</contentsFile>
             <type>mobile</type>
         </templateCode>
@@ -118,9 +113,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
             <templateLanguage>velocity</templateLanguage>
-            <contentType>text/html</contentType>
             <contentsFile>sidebar.vm</contentsFile>
             <type>standard</type>
         </templateCode>

Modified: roller/trunk/app/src/main/webapp/themes/fauxcoly/theme.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/fauxcoly/theme.xml?rev=1611984&r1=1611983&r2=1611984&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/fauxcoly/theme.xml (original)
+++ roller/trunk/app/src/main/webapp/themes/fauxcoly/theme.xml Sat Jul 19 23:35:25 2014
@@ -16,9 +16,9 @@
         <name>custom.css</name>
         <description>Custom style sheet</description>
         <link>custom.css</link>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>custom_css.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -31,9 +31,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>weblog.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -45,9 +45,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>entry.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -59,9 +59,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>tags_index.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -73,9 +73,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>search.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -87,9 +87,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>day.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -101,12 +101,12 @@
         <link>archives</link>
         <navbar>true</navbar>
         <hidden>false</hidden>
-         <templateCode>
+        <contentType>text/html</contentType>
+        <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>archives.vm</contentsFile>
            <type>standard</type>
-       </templateCode>
+        </templateCode>
     </template>
 
     <template action="custom">
@@ -115,12 +115,12 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
-         <templateCode>
+        <contentType>text/html</contentType>
+        <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>std_head.vm</contentsFile>
            <type>standard</type>
-       </templateCode>
+        </templateCode>
     </template>
 
     <template action="custom">
@@ -129,9 +129,9 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>std_header.vm</contentsFile>
            <type>standard</type>
        </templateCode>
@@ -143,12 +143,12 @@
         <link></link>
         <navbar>false</navbar>
         <hidden>true</hidden>
-         <templateCode>
+        <contentType>text/html</contentType>
+        <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>std_footer.vm</contentsFile>
            <type>standard</type>
-       </templateCode>
+        </templateCode>
     </template>
 
     <template action="custom">
@@ -157,12 +157,12 @@
         <link>style.css</link>
         <navbar>false</navbar>
         <hidden>false</hidden>
-         <templateCode>
+        <contentType>text/html</contentType>
+        <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>style_css.vm</contentsFile>
            <type>standard</type>
-       </templateCode>
+        </templateCode>
     </template>
 
     <template action="custom">
@@ -171,9 +171,9 @@
         <link>searchhi.js</link>
         <navbar>false</navbar>
         <hidden>false</hidden>
+        <contentType>text/html</contentType>
         <templateCode>
            <templateLanguage>velocity</templateLanguage>
-           <contentType>text/html</contentType>
            <contentsFile>searchhi.js</contentsFile>
            <type>standard</type>
        </templateCode>