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/08/08 02:25:31 UTC

svn commit: r1616650 - in /roller/trunk/app/src: main/java/org/apache/roller/weblogger/business/ main/java/org/apache/roller/weblogger/business/jpa/ main/java/org/apache/roller/weblogger/business/themes/ main/java/org/apache/roller/weblogger/pojos/ mai...

Author: gmazza
Date: Fri Aug  8 00:25:31 2014
New Revision: 1616650

URL: http://svn.apache.org/r1616650
Log:
Switch to using JPA to handle relationships between WeblogTemplates and CustomTemplateRenditions.

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/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/pojos/CustomTemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/StaticThemeTemplate.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/TemplateRendition.java
    roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.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/resources/org/apache/roller/weblogger/pojos/CustomTemplateRendition.orm.xml
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml
    roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogTemplate.orm.xml
    roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/CustomTemplateRenditionTest.java

Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/WeblogManager.java?rev=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -180,12 +180,6 @@ public interface WeblogManager {
         throws WebloggerException;
 
     /**
-     * Get a custom template rendition by parent template ID and rendition type.
-     */
-    CustomTemplateRendition getTemplateRenditionByType(String templateId, RenditionType type)
-            throws WebloggerException ;
-
-    /**
      * Save a custom template rendition
      */
     void saveTemplateRendition(CustomTemplateRendition templateCode) 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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -30,7 +30,15 @@ import javax.persistence.NoResultExcepti
 import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 import java.sql.Timestamp;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
 import org.apache.roller.weblogger.business.MediaFileManager;
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogEntryManager;
@@ -39,7 +47,6 @@ import org.apache.roller.weblogger.busin
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.pojos.AutoPing;
 import org.apache.roller.weblogger.pojos.CustomTemplateRendition;
-import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType;
 import org.apache.roller.weblogger.pojos.PingQueueEntry;
 import org.apache.roller.weblogger.pojos.PingTarget;
 import org.apache.roller.weblogger.pojos.StatCount;
@@ -168,8 +175,6 @@ public class JPAWeblogManagerImpl implem
         List<WeblogTemplate> templates = templateQuery.getResultList();
 
         for (WeblogTemplate template : templates) {
-            // remove associated templateCode objects
-            this.removeTemplateRenditions(template);
             this.strategy.remove(template);
         }
         
@@ -242,13 +247,12 @@ public class JPAWeblogManagerImpl implem
 
     public void saveTemplateRendition(CustomTemplateRendition rendition) throws WebloggerException {
         this.strategy.store(rendition);
-        // template update should happen by saving rendition.
+
+        // update weblog last modified date.  date updated by saveWeblog()
+        roller.getWeblogManager().saveWeblog(rendition.getWeblogTemplate().getWeblog());
     }
     
     public void removeTemplate(WeblogTemplate template) throws WebloggerException {
-        //remove template code objects
-        this.removeTemplateRenditions(template);
-        this.strategy.flush();
         this.strategy.remove(template);
         // update weblog last modified date.  date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(template.getWeblog());
@@ -574,26 +578,6 @@ public class JPAWeblogManagerImpl implem
         }
     }
 
-    public CustomTemplateRendition getTemplateRenditionByType(String templateId, RenditionType type) throws WebloggerException{
-        if(templateId == null) {
-            throw new WebloggerException("Template ID is null");
-        }
-
-        if (type == null) {
-            throw new WebloggerException("Type is null");
-        }
-
-        TypedQuery<CustomTemplateRendition> query = strategy.getNamedQuery("CustomTemplateRendition.getRenditionByType",
-                CustomTemplateRendition.class);
-        query.setParameter(1, templateId);
-        query.setParameter(2, type);
-        try {
-            return query.getSingleResult();
-        } catch (NoResultException e) {
-            return null;
-        }
-    }
-
     /**
      * @see org.apache.roller.weblogger.business.WeblogManager#getTemplates(Weblog)
      */
@@ -698,15 +682,4 @@ public class JPAWeblogManagerImpl implem
         return results.get(0);
     }
 
-    private void removeTemplateRenditions(WeblogTemplate template) throws WebloggerException {
-        TypedQuery<CustomTemplateRendition> codeQuery = strategy.getNamedQuery(
-                "CustomTemplateRendition.getRenditionsByTemplateId", CustomTemplateRendition.class);
-        codeQuery.setParameter(1, template.getId());
-        List<CustomTemplateRendition> codeList = codeQuery.getResultList();
-
-        for (CustomTemplateRendition code : codeList) {
-            this.strategy.remove(code);
-        }
-    }
-
 }

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -450,8 +450,7 @@ public class SharedThemeFromDir extends 
             log.error("Couldn't load stylesheet theme [" + this.getName()
                     + "] template file [" + templateFile + "]");
         }
-
-        templateRendition.setTemplateId(templateId);
+        //TODO: remove templateId above
         templateRendition.setTemplate(contents);
         templateRendition.setTemplateLanguage(templateCodeMetadata.getTemplateLang());
         templateRendition.setType(templateCodeMetadata.getType());

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -21,6 +21,7 @@ package org.apache.roller.weblogger.busi
 import org.apache.roller.weblogger.pojos.TemplateRendition;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.roller.weblogger.pojos.WeblogTemplate;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -30,14 +31,13 @@ import java.util.Date;
  */
 public class SharedThemeTemplateRendition implements Serializable, TemplateRendition {
 
-	private String templateId = null;
+	private WeblogTemplate weblogTemplate = null;
 	private String template = null;
 	private RenditionType type = null;
 	private TemplateLanguage templateLanguage = null;
 	private Date lastModified = null;
 
-	public SharedThemeTemplateRendition(String templateId, RenditionType type) {
-		this.templateId = templateId;
+	public SharedThemeTemplateRendition(RenditionType type) {
 		this.type = type;
 	}
 
@@ -55,13 +55,12 @@ public class SharedThemeTemplateRenditio
 	}
 
 	// @Override
-	public String getTemplateId() {
-		return templateId;
+	public WeblogTemplate getWeblogTemplate() {
+		return null;
 	}
 
 	// @Override
-	public void setTemplateId(String templateId) {
-		this.templateId = templateId;
+	public void setWeblogTemplate(WeblogTemplate templateId) {
 	}
 
 	// @Override
@@ -96,7 +95,7 @@ public class SharedThemeTemplateRenditio
 	// ------------------------------------------------------- Good citizenship
 
 	public String toString() {
-        return "{" + this.templateId + ", [ " + this.template +"] , " + this.type + "}";
+        return "{" + this.template + ", [ " + this.template +"] , " + this.type + "}";
 	}
 
 	public boolean equals(Object other) {
@@ -107,12 +106,12 @@ public class SharedThemeTemplateRenditio
             return false;
         }
 		SharedThemeTemplateRendition o = (SharedThemeTemplateRendition) other;
-		return new EqualsBuilder().append(templateId, o.getTemplateId())
+		return new EqualsBuilder()
 				.append(template, o.getTemplate()).isEquals();
 	}
 
 	public int hashCode() {
-		return new HashCodeBuilder().append(getTemplateId())
+		return new HashCodeBuilder()
 				.append(getTemplate()).toHashCode();
 	}
 

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -265,7 +265,7 @@ public class ThemeManagerImpl implements
 					if (weblogTemplateCode == null) {
 						// Does not exist so create a new one
 						weblogTemplateCode = new CustomTemplateRendition(
-								template.getId(), type);
+								template, type);
 					}
 					weblogTemplateCode.setType(type);
 					weblogTemplateCode.setTemplate(templateCode.getTemplate());

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -1,6 +1,6 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  The ASF licenses this file to You
+ * contributor license agreements.  The ASF licenses this file to You
  * under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -31,21 +31,30 @@ public class CustomTemplateRendition imp
 
 	private static final long serialVersionUID = -1497618963802805151L;
 	private String id = UUIDGenerator.generateUUID();
-	private String templateId = null;
+    private WeblogTemplate weblogTemplate = null;
 	// template contents
 	private String template = null;
 	private RenditionType type = null;
 	private TemplateLanguage templateLanguage = null;
 
-	public CustomTemplateRendition(String templateId, RenditionType type) {
-		this.templateId = templateId;
+	public CustomTemplateRendition(WeblogTemplate template, RenditionType type) {
+		this.weblogTemplate = template;
 		this.type = type;
+        weblogTemplate.addTemplateRendition(this);
 	}
 
 	public CustomTemplateRendition() {
 	}
 
-	public String getId() {
+    public WeblogTemplate getWeblogTemplate() {
+        return weblogTemplate;
+    }
+
+    public void setWeblogTemplate(WeblogTemplate weblogTemplate) {
+        this.weblogTemplate = weblogTemplate;
+    }
+
+    public String getId() {
 		return id;
 	}
 
@@ -53,27 +62,17 @@ public class CustomTemplateRendition imp
 		this.id = id;
 	}
 
-	// @Override
+	@Override
 	public String getTemplate() {
 		return template;
 	}
 
-	// @Override
+	@Override
 	public void setTemplate(String template) {
 		this.template = template;
 	}
 
 	// @Override
-	public String getTemplateId() {
-		return templateId;
-	}
-
-	// @Override
-	public void setTemplateId(String templateId) {
-		this.templateId = templateId;
-	}
-
-	// @Override
 	public RenditionType getType() {
 		return type;
 	}
@@ -87,7 +86,7 @@ public class CustomTemplateRendition imp
 
 	public String toString() {
         return "{" + getId()
-                + ", " + getTemplateId()
+                + ", " + getWeblogTemplate().getId()
                 + ", [ " + getTemplate()
                 + "] , " + getType() + "}";
 	}
@@ -100,12 +99,12 @@ public class CustomTemplateRendition imp
             return false;
         }
 		CustomTemplateRendition o = (CustomTemplateRendition) other;
-		return new EqualsBuilder().append(getTemplateId(), o.getTemplateId())
+		return new EqualsBuilder().append(getWeblogTemplate().getId(), o.getWeblogTemplate().getId())
 				.append(getTemplate(), o.getTemplate()).isEquals();
 	}
 
 	public int hashCode() {
-		return new HashCodeBuilder().append(getTemplateId())
+		return new HashCodeBuilder().append(getWeblogTemplate().getId())
 				.append(getTemplate()).toHashCode();
 	}
 

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -108,7 +108,7 @@ public class StaticThemeTemplate impleme
     }
 
     public TemplateRendition getTemplateRendition(RenditionType type) throws WebloggerException {
-        return WebloggerFactory.getWeblogger().getWeblogManager().getTemplateRenditionByType(this.id, type);
+        return null;
     }
 
     public void setType(RenditionType type){

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -41,7 +41,7 @@ public interface TemplateRendition {
 
     String getTemplate();
 
-    String getTemplateId();
+    WeblogTemplate getWeblogTemplate();
 
     TemplateLanguage getTemplateLanguage();
 
@@ -49,7 +49,7 @@ public interface TemplateRendition {
 
     void setTemplate(String template);
 
-    void setTemplateId(String templateId);
+    void setWeblogTemplate(WeblogTemplate template);
 
     void setTemplateLanguage(TemplateLanguage templateLanguage);
 

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -22,11 +22,12 @@ import org.apache.commons.lang3.builder.
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.roller.util.UUIDGenerator;
 import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.WebloggerFactory;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -146,8 +147,9 @@ public class WeblogTemplate implements T
     public void setOutputContentType(String outputContentType) {
         this.outputContentType = outputContentType;
     }
-    
-    
+
+    private List<CustomTemplateRendition> templateRenditions = new ArrayList<CustomTemplateRendition>();
+
     /**
      * Determine if this WeblogTemplate is required or not.
      */
@@ -174,8 +176,39 @@ public class WeblogTemplate implements T
         return ComponentType.CUSTOM.equals(getAction()) && !isRequired();
     }
 
-    public CustomTemplateRendition getTemplateRendition(CustomTemplateRendition.RenditionType type) throws WebloggerException {
-        return WebloggerFactory.getWeblogger().getWeblogManager().getTemplateRenditionByType(getId(), type);
+
+    public List<CustomTemplateRendition> getTemplateRenditions() {
+        return templateRenditions;
+    }
+
+    public void setTemplateRenditions(List<CustomTemplateRendition> templateRenditions) {
+        this.templateRenditions = templateRenditions;
+    }
+
+    public CustomTemplateRendition getTemplateRendition(CustomTemplateRendition.RenditionType desiredType) throws WebloggerException {
+        for (CustomTemplateRendition rnd : templateRenditions) {
+            if (rnd.getType().equals(desiredType)) {
+                return rnd;
+            }
+        }
+        return null;
+    }
+
+    public void addTemplateRendition(CustomTemplateRendition newRendition) {
+        if (hasTemplateRendition(newRendition)) {
+            throw new IllegalArgumentException("Rendition type '" + newRendition.getType()
+                    + " for template '" + this.getName() + "' already exists.");
+        }
+        templateRenditions.add(newRendition);
+    }
+
+    public boolean hasTemplateRendition(CustomTemplateRendition proposed) {
+        for (CustomTemplateRendition rnd : templateRenditions) {
+            if(rnd.getType().equals(proposed.getType())) {
+                return true;
+            }
+        }
+        return false;
     }
 
     //------------------------------------------------------- Good citizenship

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -98,7 +98,7 @@ public class StylesheetEdit extends UIAc
                     TemplateRendition sCode = stylesheet.getTemplateRendition(RenditionType.STANDARD);
                     if (sCode != null) {
                         CustomTemplateRendition standardRendition = new CustomTemplateRendition(
-                                stylesheetTmpl.getId(), RenditionType.STANDARD);
+                                stylesheetTmpl, RenditionType.STANDARD);
                         standardRendition.setTemplate(sCode.getTemplate());
                         standardRendition.setTemplateLanguage(sCode.getTemplateLanguage());
                         WebloggerFactory.getWeblogger().getWeblogManager()
@@ -108,7 +108,7 @@ public class StylesheetEdit extends UIAc
                     TemplateRendition mCode = stylesheet.getTemplateRendition(RenditionType.MOBILE);
                     if (mCode != null) {
                         CustomTemplateRendition mobileRendition = new CustomTemplateRendition(
-                                stylesheetTmpl.getId(), RenditionType.MOBILE);
+                                stylesheetTmpl, RenditionType.MOBILE);
                         mobileRendition.setTemplate(mCode.getTemplate());
                         mobileRendition.setTemplateLanguage(mCode
                                 .getTemplateLanguage());
@@ -214,7 +214,7 @@ public class StylesheetEdit extends UIAc
                 } else {
                     // otherwise create it, then set it
                     CustomTemplateRendition tc = new CustomTemplateRendition(
-                            stylesheet.getId(), RenditionType.STANDARD);
+                            stylesheet, RenditionType.STANDARD);
                     tc.setTemplate("");
                     WebloggerFactory.getWeblogger().getWeblogManager()
                             .saveTemplateRendition(tc);

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -161,7 +161,7 @@ public class TemplateEditBean {
             WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(tc);
         } else { 
             // otherwise create it, then set it
-            CustomTemplateRendition tc = new CustomTemplateRendition(dataHolder.getId(), RenditionType.STANDARD);
+            CustomTemplateRendition tc = new CustomTemplateRendition(dataHolder, RenditionType.STANDARD);
 			tc.setTemplate("");
             WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(tc);
         }

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -167,7 +167,7 @@ public class Templates extends UIAction 
 
                 // Create weblog template codes for available types.
                 CustomTemplateRendition standardRendition = new CustomTemplateRendition(
-                        newTemplate.getId(), RenditionType.STANDARD);
+                        newTemplate, RenditionType.STANDARD);
                 standardRendition.setTemplate(getText("pageForm.newTemplateContent"));
                 standardRendition.setTemplateLanguage(TemplateLanguage.VELOCITY);
                 WebloggerFactory.getWeblogger().getWeblogManager()

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -7,12 +7,6 @@
     <entity metadata-complete="true" name="CustomTemplateRendition"
             class="org.apache.roller.weblogger.pojos.CustomTemplateRendition" access="PROPERTY">
         <table name="custom_template_rendition"/>
-        <named-query name="CustomTemplateRendition.getRenditionByType">
-            <query>SELECT c FROM CustomTemplateRendition c WHERE c.templateId = ?1 AND c.type =?2</query>
-        </named-query>
-        <named-query name="CustomTemplateRendition.getRenditionsByTemplateId">
-            <query>SELECT c FROM CustomTemplateRendition c WHERE c.templateId = ?1</query>
-        </named-query>
         <attributes>
             <id name="id">
                 <column name="id"/>
@@ -20,9 +14,6 @@
             <basic name="template">
                 <column name="template" insertable="true" updatable="true" nullable="false"/>
             </basic>
-            <basic name="templateId">
-                <column name="templateId" insertable="true" updatable="true" nullable="false"/>
-            </basic>
             <basic name="type">
                 <column name="type" insertable="true" updatable="true" nullable="false"/>
                 <enumerated>STRING</enumerated>
@@ -31,9 +22,9 @@
                 <column name="templatelang" insertable="true" updatable="true" unique="false"/>
                 <enumerated>STRING</enumerated>
             </basic>
-            <!--many-to-one name="weblogTemplate" target-entity="org.apache.roller.weblogger.pojos.WeblogTemplate">
-                <join-column name="templateId" insertable="true" updatable="true" nullable="false"/>
-            </many-to-one-->
+            <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/Weblog.orm.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml?rev=1616650&r1=1616649&r2=1616650&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml (original)
+++ roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/Weblog.orm.xml Fri Aug  8 00:25:31 2014
@@ -106,7 +106,7 @@
 			<many-to-one name="bloggerCategory" target-entity="org.apache.roller.weblogger.pojos.WeblogCategory">
 				<join-column name="bloggercatid" insertable="true" updatable="true"/>
 			</many-to-one>
-            <one-to-many name="weblogCategories" target-entity="org.apache.roller.weblogger.pojos.WeblogCategory" mapped-by="weblog" fetch="EAGER">
+            <one-to-many name="weblogCategories" target-entity="org.apache.roller.weblogger.pojos.WeblogCategory" mapped-by="weblog">
                 <order-by>position</order-by>
                 <cascade>
                     <cascade-remove/>

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -56,6 +56,11 @@
             <many-to-one name="weblog" target-entity="org.apache.roller.weblogger.pojos.Weblog">
                 <join-column name="websiteid" insertable="true" updatable="true" nullable="false"/>
             </many-to-one>
+            <one-to-many name="templateRenditions" target-entity="org.apache.roller.weblogger.pojos.CustomTemplateRendition" mapped-by="weblogTemplate">
+                <cascade>
+                    <cascade-all/>
+                </cascade>
+            </one-to-many>
             <transient name="custom"/>
             <transient name="required"/>
         </attributes>

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=1616650&r1=1616649&r2=1616650&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 Fri Aug  8 00:25:31 2014
@@ -101,67 +101,61 @@ public class CustomTemplateRenditionTest
 
            // create template
            mgr.saveTemplate(testPage);
-           TestUtils.endSession(true);
 
            //create standard template rendition
-           CustomTemplateRendition standardTemplateCode = new CustomTemplateRendition(testPage.getId(), RenditionType.STANDARD);
+           CustomTemplateRendition standardTemplateCode = new CustomTemplateRendition(testPage, RenditionType.STANDARD);
            standardTemplateCode.setTemplate("standard.template.code");
            standardTemplateCode.setTemplateLanguage(TemplateLanguage.VELOCITY);
-           mgr.saveTemplateRendition(standardTemplateCode);
 
            //create mobile code
-           CustomTemplateRendition mobileTemplateCode = new CustomTemplateRendition(testPage.getId(), RenditionType.MOBILE);
+           CustomTemplateRendition mobileTemplateCode = new CustomTemplateRendition(testPage, RenditionType.MOBILE);
            mobileTemplateCode.setTemplate("mobile.template.code");
            mobileTemplateCode.setTemplateLanguage(TemplateLanguage.VELOCITY);
-           mgr.saveTemplateRendition(mobileTemplateCode);
+
            TestUtils.endSession(true);
 
            // check that create was successful
-           standardCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.STANDARD);
+           WeblogTemplate testPageCheck = mgr.getTemplate(testPage.getId());
+
+           assertNotNull(testPageCheck);
+
+           standardCode = testPageCheck.getTemplateRendition(RenditionType.STANDARD);
            assertNotNull(standardCode);
-           assertEquals(standardTemplateCode.getTemplate() ,standardCode.getTemplate());
+           assertEquals(standardTemplateCode.getTemplate(), standardCode.getTemplate());
 
-           mobileCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.MOBILE);
+           mobileCode = testPageCheck.getTemplateRendition(RenditionType.MOBILE);
            assertNotNull(mobileCode);
            assertEquals(mobileTemplateCode.getTemplate() ,mobileCode.getTemplate());
 
            // update template Code
            standardCode = null;
-           standardCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.STANDARD);
+           standardCode = testPageCheck.getTemplateRendition(RenditionType.STANDARD);
            standardCode.setTemplate("update.standard.template");
            mgr.saveTemplateRendition(standardCode);
 
            mobileCode = null;
-           mobileCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.MOBILE);
+           mobileCode = testPageCheck.getTemplateRendition(RenditionType.MOBILE);
            mobileCode.setTemplate("update.mobile.template");
            mgr.saveTemplateRendition(mobileCode);
 
            TestUtils.endSession(true);
 
            // check that update was successful
-           standardCode =null;
-           standardCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.STANDARD);
+           standardCode = null;
+           standardCode = testPageCheck.getTemplateRendition(RenditionType.STANDARD);
            assertEquals("update.standard.template",standardCode.getTemplate());
 
-           mobileCode =null;
-           mobileCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.MOBILE);
+           mobileCode = null;
+           mobileCode = testPageCheck.getTemplateRendition(RenditionType.MOBILE);
            assertEquals("update.mobile.template",mobileCode.getTemplate());
 
            WeblogTemplate page = mgr.getTemplate(testPage.getId());
            mgr.removeTemplate(page);
            TestUtils.endSession(true);
 
-           // check that update was successful
-           standardCode =null;
-           standardCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.STANDARD);
-           assertNull(standardCode);
-
-           mobileCode =null;
-           mobileCode = mgr.getTemplateRenditionByType(testPage.getId(), RenditionType.MOBILE);
-           assertNull(mobileCode);
+           // check that template remove was successful
+           testPageCheck = mgr.getTemplate(testPage.getId());
+           assertNull(testPageCheck);
 
        }
-
-
-
 }