Author: gmazza
Date: Thu Jul 24 20:44:41 2014
New Revision: 1613276

URL: http://svn.apache.org/r1613276
Log:
Actions now stored as Enums (ComponentType) within Java, new action STYLESHEET 
added.

Removed:
    
roller/trunk/app/src/main/webapp/themes/gaurav/images/theme-responsive-mobile.png
Modified:
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.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/SharedThemeTemplate.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/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/StaticThemeTemplate.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/WeblogWrapper.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/PreviewServlet.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.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/ui/struts2/editor/TemplatesRemove.java
    
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
    
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/webapp/WEB-INF/velocity/weblog.vm
    
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/WeblogManager.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java
 Thu Jul 24 20:44:41 2014
@@ -25,6 +25,7 @@ import org.apache.roller.weblogger.Weblo
 import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
 import org.apache.roller.weblogger.pojos.StatCount;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
@@ -163,7 +164,7 @@ public interface WeblogManager {
     /**
      * Get a custom template by the action it supports.
      */
-    WeblogTemplate getTemplateByAction(Weblog w, String a) throws 
WebloggerException;
+    WeblogTemplate getTemplateByAction(Weblog w, ComponentType a) throws 
WebloggerException;
     
     
     /**

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
 Thu Jul 24 20:44:41 2014
@@ -45,6 +45,7 @@ import org.apache.roller.weblogger.pojos
 import org.apache.roller.weblogger.pojos.StatCount;
 import org.apache.roller.weblogger.pojos.StatCountCountComparator;
 import org.apache.roller.weblogger.pojos.TagStat;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogBookmark;
@@ -524,9 +525,9 @@ public class JPAWeblogManagerImpl implem
     }
     
     /**
-     * @see 
org.apache.roller.weblogger.business.WeblogManager#getTemplateByAction(Weblog, 
String)
+     * @see 
org.apache.roller.weblogger.business.WeblogManager#getTemplateByAction(Weblog, 
ComponentType)
      */
-    public WeblogTemplate getTemplateByAction(Weblog weblog, String action)
+    public WeblogTemplate getTemplateByAction(Weblog weblog, ComponentType 
action)
             throws WebloggerException {
         
         if (weblog == null) {

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -28,10 +28,9 @@ 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;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 
 /**
  * The Theme object encapsulates all elements of a single weblog theme. It is
@@ -58,7 +57,7 @@ public class SharedThemeFromDir extends 
     private Map<String, ThemeTemplate> templatesByLink = new HashMap<String, 
ThemeTemplate>();
 
     // we keep templates in a Map for faster lookups by action
-    private Map<String, ThemeTemplate> templatesByAction = new HashMap<String, 
ThemeTemplate>();
+    private Map<ComponentType, ThemeTemplate> templatesByAction = new 
HashMap<ComponentType, ThemeTemplate>();
 
     // we keep resources in a Map for faster lookups by path
     // the Map contains ... (resource path, ThemeResource)
@@ -99,7 +98,7 @@ public class SharedThemeFromDir extends 
      * cannot be found.
      */
     public ThemeTemplate getDefaultTemplate() {
-        return this.templatesByAction.get(ThemeTemplate.ACTION_WEBLOG);
+        return this.templatesByAction.get(ComponentType.WEBLOG);
     }
 
     /**
@@ -122,7 +121,7 @@ public class SharedThemeFromDir extends 
      * Lookup the specified template by action. Returns null if the template
      * cannot be found.
      */
-    public ThemeTemplate getTemplateByAction(String action) {
+    public ThemeTemplate getTemplateByAction(ComponentType action) {
         return this.templatesByAction.get(action);
     }
 
@@ -261,7 +260,7 @@ public class SharedThemeFromDir extends 
                 SharedThemeTemplate themeTemplate = new SharedThemeTemplate(
                         themeMetadata.getId() + ":"
                                 + stylesheetTmpl.getName(),
-                        WeblogTemplate.ACTION_CUSTOM, stylesheetTmpl.getName(),
+                        stylesheetTmpl.getAction(), stylesheetTmpl.getName(),
                         stylesheetTmpl.getDescription(), contents,
                         stylesheetTmpl.getLink(), new Date(
                                 templateFile.lastModified()), false, false);
@@ -421,7 +420,7 @@ public class SharedThemeFromDir extends 
     private void addTemplate(ThemeTemplate template) {
         this.templatesByName.put(template.getName(), template);
         this.templatesByLink.put(template.getLink(), template);
-        if (!ThemeTemplate.ACTION_CUSTOM.equals(template.getAction())) {
+        if (!ComponentType.CUSTOM.equals(template.getAction())) {
             this.templatesByAction.put(template.getAction(), template);
         }
     }

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -19,7 +19,6 @@
 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;
@@ -37,7 +36,7 @@ import java.util.Map;
 public class SharedThemeTemplate implements ThemeTemplate, Serializable {
     
     private String id = null;
-    private String action = null;
+    private ComponentType action = null;
     private String name = null;
     private String description = null;
     private String contents = null;
@@ -53,7 +52,7 @@ public class SharedThemeTemplate impleme
     
     public SharedThemeTemplate() {}
     
-    public SharedThemeTemplate(String id, String action, String name,
+    public SharedThemeTemplate(String id, ComponentType action, String name,
             String desc, String contents, String link, Date date, 
             boolean hidden, boolean navbar) {
         
@@ -145,11 +144,11 @@ public class SharedThemeTemplate impleme
                 lastModified + "\n\n" + contents + "\n");
     }
 
-    public String getAction() {
+    public ComponentType getAction() {
         return action;
     }
 
-    public void setAction(String action) {
+    public void setAction(ComponentType action) {
         this.action = action;
     }
 

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -50,6 +50,7 @@ import org.apache.roller.weblogger.pojos
 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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
@@ -204,18 +205,17 @@ public class ThemeManagerImpl implements
                     + " does not have a root MediaFile directory");
         }
 
-               Set<String> importedActionTemplates = new HashSet<String>();
+               Set<ComponentType> importedActionTemplates = new 
HashSet<ComponentType>();
                ThemeTemplate stylesheetTemplate = theme.getStylesheet();
                for (ThemeTemplate themeTemplate : theme.getTemplates()) {
                        WeblogTemplate template;
 
                        // if template is an action, lookup by action
                        if (themeTemplate.getAction() != null
-                                       && !themeTemplate.getAction().equals(
-                                                       
WeblogTemplate.ACTION_CUSTOM)) {
+                                       && 
!themeTemplate.getAction().equals(ComponentType.CUSTOM)) {
                                
importedActionTemplates.add(themeTemplate.getAction());
                                template = wmgr.getTemplateByAction(weblog,
-                                               themeTemplate.getAction());
+                        themeTemplate.getAction());
 
                                // otherwise, lookup by name
                        } else {
@@ -278,9 +278,12 @@ public class ThemeManagerImpl implements
                        }
                }
 
-               // now, see if the weblog has left over action templates that
+               // now, see if the weblog has left over non-custom action 
templates that
                // need to be deleted because they aren't in their new theme
-        for (String action : WeblogTemplate.ACTIONS) {
+        for (ComponentType action : ComponentType.values()) {
+            if (action == ComponentType.CUSTOM) {
+                continue;
+            }
                        // if we didn't import this action then see if it 
should be deleted
                        if (!importedActionTemplates.contains(action)) {
                                WeblogTemplate toDelete = 
wmgr.getTemplateByAction(weblog, action);
@@ -363,7 +366,7 @@ public class ThemeManagerImpl implements
                                mf.setLength(resource.getLength());
 
                                log.debug("    Saving file: " + justName);
-                               log.debug("    Saviving in directory = " + 
mf.getDirectory());
+                               log.debug("    Saving in directory = " + 
mf.getDirectory());
                                RollerMessages errors = new RollerMessages();
                                fileMgr.createMediaFile(weblog, mf, errors);
                                try {

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -19,10 +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.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
@@ -100,7 +99,7 @@ public class ThemeMetadataParser {
             ThemeMetadataTemplate tmpl = elementToTemplateMetadata(template);
             theme.addTemplate(tmpl);
 
-            if(WeblogTemplate.ACTION_WEBLOG.equals(tmpl.getAction())) {
+            if(ComponentType.WEBLOG.equals(tmpl.getAction())) {
                 weblogActionTemplate = true;
             }
         }
@@ -120,17 +119,24 @@ public class ThemeMetadataParser {
 
                ThemeMetadataTemplate template = new ThemeMetadataTemplate();
 
-               template.setAction(element.getAttributeValue("action"));
                template.setName(element.getChildText("name"));
                template.setDescription(element.getChildText("description"));
                template.setLink(element.getChildText("link"));
                template.setContentType(element.getChildText("contentType"));
-        template.setContentType(element.getChildText("contentType"));
+        String actionString = element.getAttributeValue("action");
+        if (StringUtils.isEmpty(actionString)) {
+            throw new ThemeParsingException("Template must contain an 'action' 
element");
+        } else {
+            try {
+                
template.setAction(ComponentType.valueOf(actionString.toUpperCase()));
+            } catch (IllegalArgumentException e) {
+                throw new ThemeParsingException("Unknown template action value 
'" + actionString + "'");
+            }
+        }
 
                //parsing template code segment
                List<Element> templateCodeList = 
element.getChildren("templateCode");
 
-               boolean roller50format = false;
                for (Element templateCodeElement : templateCodeList) {
                        ThemeMetadataTemplateRendition templateCode = new 
ThemeMetadataTemplateRendition();
             String templateString = 
templateCodeElement.getChildText("templateLanguage");
@@ -171,9 +177,6 @@ public class ThemeMetadataParser {
                }
 
                // validate template
-               if (StringUtils.isEmpty(template.getAction())) {
-                       throw new ThemeParsingException("templates must contain 
an 'action' attribute");
-               }
                if (StringUtils.isEmpty(template.getName())) {
                        throw new ThemeParsingException("templates must contain 
a 'name' element");
                }
@@ -191,6 +194,7 @@ public class ThemeMetadataParser {
         template.setDescription(element.getChildText("description"));
         template.setLink(element.getChildText("link"));
         template.setContentType(element.getChildText("contentType"));
+        template.setAction(ComponentType.STYLESHEET);
 
         // parsing templatecode segment
         List<Element> templateCodeList = element.getChildren("templateCode");

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -19,6 +19,7 @@
 package org.apache.roller.weblogger.business.themes;
 
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -28,7 +29,7 @@ import java.util.Map;
  */
 public class ThemeMetadataTemplate {
     
-    private String action = null;
+    private ComponentType action = null;
     private String name = null;
     private String description = null;
     private String link = null;
@@ -40,11 +41,11 @@ public class ThemeMetadataTemplate {
     private Map<RenditionType, ThemeMetadataTemplateRendition> 
templateRenditionTable
             = new HashMap<RenditionType, ThemeMetadataTemplateRendition>();
 
-    public String getAction() {
+    public ComponentType getAction() {
         return action;
     }
 
-    public void setAction(String action) {
+    public void setAction(ComponentType action) {
         this.action = action;
     }
 

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -28,6 +28,7 @@ import org.apache.roller.weblogger.pojos
 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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
 
@@ -96,7 +97,7 @@ public class WeblogCustomTheme extends W
      */
     public ThemeTemplate getDefaultTemplate() throws WebloggerException {
         return WebloggerFactory.getWeblogger().getWeblogManager()
-                .getTemplateByAction(this.weblog, ThemeTemplate.ACTION_WEBLOG);
+                .getTemplateByAction(this.weblog, ComponentType.WEBLOG);
     }
     
     
@@ -104,7 +105,7 @@ public class WeblogCustomTheme extends W
      * Lookup the specified template by action.
      * Returns null if the template cannot be found.
      */
-    public ThemeTemplate getTemplateByAction(String action) throws 
WebloggerException {
+    public ThemeTemplate getTemplateByAction(ComponentType action) throws 
WebloggerException {
         if (action == null) {
             return null;
         }
@@ -132,7 +133,6 @@ public class WeblogCustomTheme extends W
         if (link == null) {
             return null;
         }
-
         return 
WebloggerFactory.getWeblogger().getWeblogManager().getTemplateByLink(this.weblog,
 link);
     }
     
@@ -142,9 +142,7 @@ public class WeblogCustomTheme extends W
      * Returns null if the resource cannot be found.
      */
     public ThemeResource getResource(String path) {
-        
         ThemeResource resource = null;
-        
         try {
             MediaFileManager mmgr =
                 WebloggerFactory.getWeblogger().getMediaFileManager();
@@ -153,7 +151,6 @@ public class WeblogCustomTheme extends W
         } catch (WebloggerException ex) {
             // ignored, resource considered not found
         }
-        
         return resource;
     }
     

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -29,6 +29,7 @@ import org.apache.roller.weblogger.pojos
 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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
 
@@ -142,7 +143,7 @@ public class WeblogSharedTheme extends W
      * Lookup the specified template by action.
      * Returns null if the template cannot be found.
      */
-    public ThemeTemplate getTemplateByAction(String action) throws 
WebloggerException {
+    public ThemeTemplate getTemplateByAction(ComponentType action) throws 
WebloggerException {
         
         if (action == null) {
             return null;

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -39,7 +39,7 @@ public class StaticThemeTemplate impleme
     private String id = null;
     private String name = null;
     private String description = null;
-    private String action = null;
+    private ComponentType action = null;
     private String link = null;
     private String contents = null;
     private boolean hidden = false;
@@ -119,11 +119,11 @@ public class StaticThemeTemplate impleme
         this.outputContentType = outputContentType;
     }
 
-    public String getAction() {
+    public ComponentType getAction() {
         return action;
     }
 
-    public void setAction(String action) {
+    public void setAction(ComponentType action) {
         this.action = action;
     }
 

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=1613276&r1=1613275&r2=1613276&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 
Thu Jul 24 20:44:41 2014
@@ -19,7 +19,7 @@
 package org.apache.roller.weblogger.pojos;
 
 import org.apache.roller.weblogger.WebloggerException;
-
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import java.util.Date;
 import java.util.List;
 
@@ -81,7 +81,7 @@ public interface Theme extends Comparabl
      * Lookup a template by action.
      * Returns null if the template cannot be found.
      */
-    ThemeTemplate getTemplateByAction(String action) throws WebloggerException;
+    ThemeTemplate getTemplateByAction(ComponentType action) throws 
WebloggerException;
     
     
     /**

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -25,27 +25,13 @@ package org.apache.roller.weblogger.pojo
  * A ThemeTemplate represents a template which is part of a Theme.
  */
 public interface ThemeTemplate extends Template {
-    
-    String ACTION_WEBLOG = "weblog";
-    String ACTION_PERMALINK = "permalink";
-    String ACTION_SEARCH = "search";
-    String ACTION_TAGSINDEX = "tagsIndex";
-    String ACTION_CUSTOM = "custom";
-    
-    // the full list of supported special actions, which purposely does not
-    // contain an entry for the 'custom' action
-    String[] ACTIONS = {
-        ACTION_WEBLOG, 
-        ACTION_PERMALINK, 
-        ACTION_SEARCH, 
-        ACTION_TAGSINDEX
-    };
-    
-    
+
+    public enum ComponentType {WEBLOG, PERMALINK, SEARCH, TAGSINDEX, 
STYLESHEET, CUSTOM}
+
     /**
      * The action this template is defined for.
      */
-    String getAction();
+    ComponentType getAction();
     
     
     /**

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -44,7 +44,7 @@ public class WeblogTemplate implements T
     
     // attributes
     private String id = UUIDGenerator.generateUUID();
-    private String  action = null;
+    private ComponentType action = null;
     private String  name = null;
     private String  description = null;
     private String  link = null;
@@ -80,11 +80,11 @@ public class WeblogTemplate implements T
         this.weblog = website;
     }
     
-    public String getAction() {
+    public ComponentType getAction() {
         return action;
     }
 
-    public void setAction(String action) {
+    public void setAction(ComponentType action) {
         this.action = action;
     }
 
@@ -171,7 +171,7 @@ public class WeblogTemplate implements T
      * template, meaning a template with action = ACTION_CUSTOM.
      */
     public boolean isCustom() {
-        return ACTION_CUSTOM.equals(getAction()) && !isRequired();
+        return ComponentType.CUSTOM.equals(getAction()) && !isRequired();
     }
 
     public CustomTemplateRendition 
getTemplateRendition(CustomTemplateRendition.RenditionType type) throws 
WebloggerException {

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
 Thu Jul 24 20:44:41 2014
@@ -26,6 +26,7 @@ import org.apache.roller.weblogger.util.
 
 import java.util.*;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogCategory;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
@@ -59,28 +60,28 @@ public final class WeblogWrapper {
     }
 
 
-    public ThemeTemplateWrapper getPageByAction(String action)
+    public ThemeTemplateWrapper getTemplateByAction(ComponentType action)
             throws WebloggerException {
         ThemeTemplate templateToWrap = 
this.pojo.getTheme().getTemplateByAction(action);
         return ThemeTemplateWrapper.wrap(templateToWrap);
     }
     
     
-    public ThemeTemplateWrapper getPageByName(String name)
+    public ThemeTemplateWrapper getTemplateByName(String name)
             throws WebloggerException {
        ThemeTemplate templateToWrap = 
this.pojo.getTheme().getTemplateByName(name);
         return ThemeTemplateWrapper.wrap(templateToWrap);
     }
     
     
-    public ThemeTemplateWrapper getPageByLink(String link)
+    public ThemeTemplateWrapper getTemplateByLink(String link)
             throws WebloggerException {
         ThemeTemplate templateToWrap = 
this.pojo.getTheme().getTemplateByLink(link);
         return ThemeTemplateWrapper.wrap(templateToWrap);
     }
     
     
-    public List<ThemeTemplateWrapper> getPages() throws WebloggerException {
+    public List<ThemeTemplateWrapper> getTemplates() throws WebloggerException 
{
         List<? extends ThemeTemplate> unwrapped = 
this.pojo.getTheme().getTemplates();
         List<ThemeTemplateWrapper> wrapped = new 
ArrayList<ThemeTemplateWrapper>(unwrapped.size());
 

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -32,9 +32,10 @@ import org.apache.roller.weblogger.confi
 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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogEntry;
-import org.apache.roller.weblogger.pojos.WeblogTemplate;
+import org.apache.roller.weblogger.pojos.WeblogTheme;
 import org.apache.roller.weblogger.ui.core.RollerContext;
 import org.apache.roller.weblogger.ui.rendering.Renderer;
 import org.apache.roller.weblogger.ui.rendering.RendererManager;
@@ -203,8 +204,7 @@ public class PageServlet extends HttpSer
 
         // Development only. Reload if theme has been modified
         if (themeReload
-                && !weblog.getEditorTheme()
-                        .equals(WeblogTemplate.ACTION_CUSTOM)
+                && !weblog.getEditorTheme().equals(WeblogTheme.CUSTOM)
                 && (pageRequest.getPathInfo() == null || pageRequest
                         .getPathInfo() != null
                         && !pageRequest.getPathInfo().endsWith(".css"))) {
@@ -300,7 +300,7 @@ public class PageServlet extends HttpSer
                 && pageRequest.getTags() != null) {
             try {
                 page = weblog.getTheme().getTemplateByAction(
-                        ThemeTemplate.ACTION_TAGSINDEX);
+                        ComponentType.TAGSINDEX);
             } catch (Exception e) {
                 log.error("Error getting weblog page for action 'tagsIndex'", 
e);
             }
@@ -319,7 +319,7 @@ public class PageServlet extends HttpSer
         } else if (pageRequest.getWeblogAnchor() != null) {
             try {
                 page = weblog.getTheme().getTemplateByAction(
-                        ThemeTemplate.ACTION_PERMALINK);
+                        ComponentType.PERMALINK);
             } catch (Exception e) {
                 log.error("Error getting weblog page for action 'permalink'", 
e);
             }
@@ -649,10 +649,8 @@ public class PageServlet extends HttpSer
                     }
                     String requestSite = requestUrl.substring(0, lastSlash);
 
-                    if (referrerUrl.matches(requestSite + ".*\\.rol.*")) {
-                        referrerUrl = null;
-                    } else if (BlacklistChecker.checkReferrer(
-                            pageRequest.getWeblog(), referrerUrl)) {
+                    if (!referrerUrl.matches(requestSite + ".*\\.rol.*") &&
+                            
BlacklistChecker.checkReferrer(pageRequest.getWeblog(), referrerUrl)) {
                         return true;
                     }
                 }

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewServlet.java
 Thu Jul 24 20:44:41 2014
@@ -23,7 +23,7 @@ import org.apache.roller.weblogger.pojos
 import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
 import org.apache.roller.weblogger.pojos.Template;
-import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
@@ -149,7 +149,7 @@ public class PreviewServlet extends Http
         } else if("tags".equals(previewRequest.getContext()) &&
                 previewRequest.getTags() == null) {
             try {
-                page = 
weblog.getTheme().getTemplateByAction(ThemeTemplate.ACTION_TAGSINDEX);
+                page = 
weblog.getTheme().getTemplateByAction(ComponentType.TAGSINDEX);
             } catch(Exception e) {
                 log.error("Error getting weblog page for action 'tagsIndex'", 
e);
             }
@@ -167,7 +167,7 @@ public class PreviewServlet extends Http
         // If this is a permalink then look for a permalink template
         } else if(previewRequest.getWeblogAnchor() != null) {
             try {
-                page = 
weblog.getTheme().getTemplateByAction(ThemeTemplate.ACTION_PERMALINK);
+                page = 
weblog.getTheme().getTemplateByAction(ComponentType.PERMALINK);
             } catch(Exception e) {
                 log.error("Error getting weblog page for action 'permalink'", 
e);
             }

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/SearchServlet.java
 Thu Jul 24 20:44:41 2014
@@ -41,6 +41,7 @@ import org.apache.roller.weblogger.confi
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
+import org.apache.roller.weblogger.pojos.WeblogTheme;
 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;
@@ -110,8 +111,7 @@ public class SearchServlet extends HttpS
 
         // Development only. Reload if theme has been modified
         if (themeReload
-                && !weblog.getEditorTheme()
-                        .equals(WeblogTemplate.ACTION_CUSTOM)) {
+                && !weblog.getEditorTheme().equals(WeblogTheme.CUSTOM)) {
 
             try {
                 ThemeManager manager = WebloggerFactory.getWeblogger()
@@ -154,7 +154,7 @@ public class SearchServlet extends HttpS
 
             // try looking for a specific search page
             page = weblog.getTheme().getTemplateByAction(
-                    ThemeTemplate.ACTION_SEARCH);
+                    ThemeTemplate.ComponentType.SEARCH);
 
             // if not found then fall back on default page
             if (page == null) {

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -33,6 +33,7 @@ import org.apache.roller.weblogger.pojos
 import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
@@ -93,7 +94,7 @@ public class StylesheetEdit extends UIAc
                     // template doesn't exist yet, so create it
                     WeblogTemplate stylesheetTmpl = new WeblogTemplate();
                     stylesheetTmpl.setWeblog(getActionWeblog());
-                    stylesheetTmpl.setAction(ThemeTemplate.ACTION_CUSTOM);
+                    
stylesheetTmpl.setAction(ThemeTemplate.ComponentType.CUSTOM);
                     stylesheetTmpl.setName(stylesheet.getName());
                     stylesheetTmpl.setDescription(stylesheet.getDescription());
                     stylesheetTmpl.setLink(stylesheet.getLink());
@@ -209,6 +210,7 @@ public class StylesheetEdit extends UIAc
                 WeblogTemplate stylesheet = getTemplate();
 
                 stylesheet.setLastModified(new Date());
+                stylesheet.setAction(ComponentType.STYLESHEET);
 
                 if (stylesheet.getTemplateRendition(RenditionType.STANDARD) != 
null) {
                     // if we have a template, then set it

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -24,6 +24,7 @@ import org.apache.roller.weblogger.Weblo
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 
 
@@ -35,7 +36,7 @@ public class TemplateEditBean {
  
     private String id = null;
     private String name = null;
-    private String action = null;
+    private ComponentType action = null;
     private String description = null;
     private String link = null;
     private String contentsStandard = null;
@@ -70,11 +71,11 @@ public class TemplateEditBean {
         this.name = name;
     }
     
-       public void setAction(String action) {
+       public void setAction(ComponentType action) {
                this.action = action;
        }
 
-       public String getAction() {
+       public ComponentType getAction() {
                return action;
        }
     

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -25,9 +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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
@@ -49,11 +49,11 @@ public class Templates extends UIAction 
        private List<WeblogTemplate> templates = Collections.emptyList();
 
        // list of template action types user is allowed to create
-       private List availableActions = Collections.emptyList();
+       private List<ComponentType> availableActions = Collections.emptyList();
 
        // name and action of new template if we are adding a template
        private String newTmplName = null;
-       private String newTmplAction = null;
+       private ComponentType newTmplAction = null;
 
        public Templates() {
                this.actionName = "templates";
@@ -89,33 +89,32 @@ public class Templates extends UIAction 
                        setTemplates(pages);
 
                        // build list of action types that may be added
-                       List<String> actionsList = new ArrayList<String>();
-                       actionsList.add(WeblogTemplate.ACTION_CUSTOM);
+                       List<ComponentType> actionsList = new 
ArrayList<ComponentType>();
+                       actionsList.add(ComponentType.CUSTOM);
 
                        if 
(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
                                // if the weblog is using a custom theme then 
determine which
                                // action templates are still available to be 
created
-                               
actionsList.add(WeblogTemplate.ACTION_PERMALINK);
-                               actionsList.add(WeblogTemplate.ACTION_SEARCH);
-                               actionsList.add(WeblogTemplate.ACTION_WEBLOG);
-                               
actionsList.add(WeblogTemplate.ACTION_TAGSINDEX);
+                               actionsList.add(ComponentType.PERMALINK);
+                               actionsList.add(ComponentType.SEARCH);
+                               actionsList.add(ComponentType.WEBLOG);
+                               actionsList.add(ComponentType.TAGSINDEX);
 
                                for (WeblogTemplate tmpPage : getTemplates()) {
-                                       if 
(!WeblogTemplate.ACTION_CUSTOM.equals(tmpPage
+                                       if (!ComponentType.CUSTOM.equals(tmpPage
                                                        .getAction())) {
                                                
actionsList.remove(tmpPage.getAction());
                                        }
                                }
                        } else {
                                // Make sure we have an option for the default 
web page
-                               actionsList.add(WeblogTemplate.ACTION_WEBLOG);
-                               if (StringUtils.isEmpty(getNewTmplAction())) {
-                                       
setNewTmplAction(WeblogTemplate.ACTION_WEBLOG);
+                               actionsList.add(ComponentType.WEBLOG);
+                               if (getNewTmplAction() == null) {
+                                       setNewTmplAction(ComponentType.WEBLOG);
                                }
                                for (WeblogTemplate tmpPage : getTemplates()) {
-                                       if (WeblogTemplate.ACTION_WEBLOG
-                                                       
.equals(tmpPage.getAction())) {
-                                               
actionsList.remove(WeblogTemplate.ACTION_WEBLOG);
+                                       if 
(ComponentType.WEBLOG.equals(tmpPage.getAction())) {
+                                               
actionsList.remove(ComponentType.WEBLOG);
                                                setNewTmplAction(null);
                                                break;
                                        }
@@ -152,13 +151,13 @@ public class Templates extends UIAction 
                 newTemplate.setNavbar(false);
                 newTemplate.setLastModified(new Date());
 
-                if (WeblogTemplate.ACTION_CUSTOM.equals(getNewTmplAction())) {
+                if (ComponentType.CUSTOM.equals(getNewTmplAction())) {
                     newTemplate.setLink(getNewTmplName());
                 }
 
                 // Make sure we have always have a Weblog main page. Stops
                 // deleting main page in custom theme mode also.
-                if (WeblogTemplate.ACTION_WEBLOG.equals(getNewTmplAction())) {
+                if (ComponentType.WEBLOG.equals(getNewTmplAction())) {
                     newTemplate.setName(WeblogTemplate.DEFAULT_PAGE);
                 }
 
@@ -219,7 +218,7 @@ public class Templates extends UIAction 
                }
 
                // make sure action is a valid
-               if (StringUtils.isEmpty(getNewTmplAction())) {
+               if (getNewTmplAction() == null) {
                        addError("Template.error.actionNull");
                }
 
@@ -254,11 +253,11 @@ public class Templates extends UIAction 
                this.templates = templates;
        }
 
-       public List getAvailableActions() {
+       public List<ComponentType> getAvailableActions() {
                return availableActions;
        }
 
-       public void setAvailableActions(List availableActions) {
+       public void setAvailableActions(List<ComponentType> availableActions) {
                this.availableActions = availableActions;
        }
 
@@ -270,11 +269,11 @@ public class Templates extends UIAction 
                this.newTmplName = newTmplName;
        }
 
-       public String getNewTmplAction() {
+       public ComponentType getNewTmplAction() {
                return newTmplAction;
        }
 
-       public void setNewTmplAction(String newTmplAction) {
+       public void setNewTmplAction(ComponentType newTmplAction) {
                this.newTmplAction = newTmplAction;
        }
 

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplatesRemove.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplatesRemove.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplatesRemove.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplatesRemove.java
 Thu Jul 24 20:44:41 2014
@@ -141,9 +141,7 @@ public class TemplatesRemove extends UIA
                         if (!id.equals("")) {
                             template = mgr.getTemplate(id);
                             if (!template.isRequired()
-                                    || !WeblogTemplate.ACTION_CUSTOM
-                                            .equals(getActionWeblog()
-                                                    .getEditorTheme())) {
+                                    || 
!"custom".equals(getActionWeblog().getEditorTheme())) {
 
                                 // if weblog template remove custom style sheet
                                 // also

Modified: 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
 (original)
+++ 
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
 Thu Jul 24 20:44:41 2014
@@ -32,6 +32,7 @@ import org.apache.roller.weblogger.busin
 import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
 import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogPermission;
@@ -288,7 +289,7 @@ public class ThemeEdit extends UIAction 
                     .getWeblogger()
                     .getWeblogManager()
                     .getTemplateByAction(getActionWeblog(),
-                            WeblogTemplate.ACTION_WEBLOG) == null);
+                            ComponentType.WEBLOG) == null);
         } catch (WebloggerException ex) {
             log.error("Error looking up weblog template", ex);
         }

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -35,6 +35,7 @@
             </basic>
             <basic name="action">
                 <column name="action" insertable="true" updatable="true" 
unique="false"/>
+                <enumerated>STRING</enumerated>
             </basic>
             <basic name="link">
                 <column name="link" insertable="true" updatable="true" 
unique="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=1613276&r1=1613275&r2=1613276&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 Thu Jul 24 
20:44:41 2014
@@ -34,7 +34,12 @@ create table custom_template_rendition (
 
 #renameTable('webpage' 'weblog_custom_template')
 
-update weblog_custom_template set templatelang = 'VELOCITY' where templatelang 
= 'velocity';
+#capitalizing column constants as these are now stored as enums in Java.
+update weblog_custom_template set templatelang = upper(templatelang);
+update weblog_custom_template wct set action = upper(action);
+#The main stylesheet for a theme has a new action, STYLESHEET.
+update weblog_custom_template wct set action='STYLESHEET' where link is not 
null and link = (select customstylesheet from weblog w where w.id = 
wct.websiteid);
+
 update weblog set editorpage = 'editor-xinha.jsp' where editorpage = 
'editor-rte.jsp';
 
 insert into custom_template_rendition(id, templateid, template, templatelang, 
type)

Modified: roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/velocity/weblog.vm Thu Jul 24 
20:44:41 2014
@@ -66,7 +66,7 @@ Parse and include page template from web
 *#
 #macro(includeTemplate $weblog $pageName)
     #set($pageArg = false)## This is required for such constructs; see 
Velocity docs and ROL-689
-    #set($pageArg = $weblog.getPageByName($pageName))
+    #set($pageArg = $weblog.getTemplateByName($pageName))
     #if ($pageArg)
        #set($pageId = $pageArg.id+'|'+$model.deviceType)
        #parse($pageId)
@@ -172,7 +172,7 @@ code if defined will be used.
 Shows weblog entries pager via default day template 
 *#
 #macro(showWeblogEntriesPager $pager)
-    #set($dayPage = $model.weblog.getPageByName("_day"))
+    #set($dayPage = $model.weblog.getTemplateByName("_day"))
     #set($map = $pager.getEntries())
     #foreach($day in $map.keySet())
         #set($entries = $map.get($day))

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=1613276&r1=1613275&r2=1613276&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
 Thu Jul 24 20:44:41 2014
@@ -25,7 +25,7 @@ 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.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
 import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage;
 import org.apache.roller.weblogger.pojos.User;
@@ -70,7 +70,7 @@ public class CustomTemplateRenditionTest
            }
 
            testPage = new WeblogTemplate();
-           testPage.setAction(WeblogTemplate.ACTION_WEBLOG);
+           testPage.setAction(ComponentType.WEBLOG);
            testPage.setName("testTemplate");
            testPage.setDescription("Test Weblog Template");
            testPage.setLink("testTemp");

Modified: 
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogPageTest.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogPageTest.java?rev=1613276&r1=1613275&r2=1613276&view=diff
==============================================================================
--- 
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogPageTest.java
 (original)
+++ 
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/WeblogPageTest.java
 Thu Jul 24 20:44:41 2014
@@ -25,6 +25,7 @@ import junit.framework.TestSuite;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.TestUtils;
+import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType;
 import org.apache.roller.weblogger.pojos.User;
 import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.pojos.Weblog;
@@ -70,7 +71,7 @@ public class WeblogPageTest extends Test
         }
         
         testPage = new WeblogTemplate();
-        testPage.setAction(WeblogTemplate.ACTION_WEBLOG);
+        testPage.setAction(ComponentType.WEBLOG);
         testPage.setName("testTemplate");
         testPage.setDescription("Test Weblog Template");
         testPage.setLink("testTemp");


Reply via email to