Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -31,17 +31,19 @@ import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-
 import java.util.Properties;
 import java.util.Set;
 import java.util.StringTokenizer;
-import javax.imageio.ImageIO;
 
+import javax.imageio.ImageIO;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
-import org.apache.commons.lang.StringUtils;
+
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
@@ -108,9 +110,25 @@ public class JPAMediaFileManagerImpl imp
             MediaFileDirectory targetDir) throws WebloggerException {
 
         for (MediaFileDirectory mediaFileDir : mediaFileDirs) {
+            // Refresh associated parent for changes
+            strategy.refresh(mediaFileDir.getParent());
             mediaFileDir.setParent(targetDir);
+            if ("/".equals(targetDir.getPath())) {
+                mediaFileDir.setPath("/" + mediaFileDir.getName());
+            } else {
+                mediaFileDir.setPath(targetDir.getPath() + "/"
+                        + mediaFileDir.getName());
+            }
             this.strategy.store(mediaFileDir);
         }
+
+        // Refresh associated parent for changes
+        roller.flush();
+        strategy.refresh(targetDir);
+        if (targetDir.getParent() != null) {
+            strategy.refresh(targetDir.getParent());
+        }
+
         // update weblog last modified date. date updated by saveWebsite()
         roller.getWeblogManager().saveWeblog(targetDir.getWeblog());
     }
@@ -135,6 +153,15 @@ public class JPAMediaFileManagerImpl imp
         }
         // update weblog last modified date. date updated by saveWebsite()
         roller.getWeblogManager().saveWeblog(targetDirectory.getWeblog());
+
+        // Refresh associated parent for changes
+        roller.flush();
+        if (moved.size() > 0) {
+            strategy.refresh(moved.get(0).getDirectory());
+        }
+
+        // Refresh associated parent for changes
+        strategy.refresh(targetDirectory);
     }
 
     /**
@@ -170,6 +197,10 @@ public class JPAMediaFileManagerImpl imp
         // update weblog last modified date. date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(newDirectory.getWeblog());
 
+        // Refresh associated parent for changes
+        roller.flush();
+        strategy.refresh(parentDirectory);
+
         return newDirectory;
     }
 
@@ -182,6 +213,9 @@ public class JPAMediaFileManagerImpl imp
 
         // update weblog last modified date. date updated by saveWebsite()
         roller.getWeblogManager().saveWeblog(directory.getWeblog());
+
+        // Refresh associated parent for changes
+        strategy.refresh(directory.getParent());
     }
 
     /**
@@ -285,6 +319,10 @@ public class JPAMediaFileManagerImpl imp
         }
         strategy.store(mediaFile);
 
+        // Refresh associated parent for changes
+        roller.flush();
+        strategy.refresh(mediaFile.getDirectory());
+
         // update weblog last modified date. date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(weblog);
 
@@ -329,6 +367,10 @@ public class JPAMediaFileManagerImpl imp
             cmgr.saveFileContent(mediaFile.getWeblog(), mediaFile.getId()
                     + "_sm", new ByteArrayInputStream(baos.toByteArray()));
 
+            roller.flush();
+            // Refresh associated parent for changes
+            strategy.refresh(mediaFile.getDirectory());
+
         } catch (Exception e) {
             log.debug("ERROR creating thumbnail", e);
         }
@@ -341,6 +383,11 @@ public class JPAMediaFileManagerImpl imp
             throws WebloggerException {
         mediaFile.setLastUpdated(new Timestamp(System.currentTimeMillis()));
         strategy.store(mediaFile);
+
+        roller.flush();
+        // Refresh associated parent for changes
+        strategy.refresh(mediaFile.getDirectory());
+
         // update weblog last modified date. date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(weblog);
     }
@@ -353,6 +400,10 @@ public class JPAMediaFileManagerImpl imp
         mediaFile.setLastUpdated(new Timestamp(System.currentTimeMillis()));
         strategy.store(mediaFile);
 
+        roller.flush();
+        // Refresh associated parent for changes
+        strategy.refresh(mediaFile.getDirectory());
+
         // update weblog last modified date. date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(weblog);
 
@@ -526,6 +577,10 @@ public class JPAMediaFileManagerImpl imp
                 .getFileContentManager();
 
         this.strategy.remove(mediaFile);
+
+        // Refresh associated parent for changes
+        strategy.refresh(mediaFile.getDirectory());
+
         // update weblog last modified date. date updated by saveWeblog()
         roller.getWeblogManager().saveWeblog(weblog);
 
@@ -827,6 +882,7 @@ public class JPAMediaFileManagerImpl imp
                             : newDir.getPath()) + "/" + files[i].getName();
                     log.debug("    Upgrade file with original path: "
                             + originalPath);
+
                     MediaFile mf = new MediaFile();
                     try {
                         mf.setName(files[i].getName());
@@ -846,10 +902,12 @@ public class JPAMediaFileManagerImpl imp
                         mf.setInputStream(new FileInputStream(files[i]));
                         mf.setContentType(Utilities
                                 
.getContentTypeFromFileName(files[i].getName()));
-                        newDir.getMediaFiles().add(mf);
 
+                        // Create
                         this.roller.getMediaFileManager().createMediaFile(
                                 weblog, mf, messages);
+                        newDir.getMediaFiles().add(mf);
+
                         log.info(messages.toString());
 
                         fileCount++;
@@ -894,16 +952,32 @@ public class JPAMediaFileManagerImpl imp
         for (MediaFile mf : files) {
             try {
                 cmgr.deleteFile(dir.getWeblog(), mf.getId());
+                // Now thumbnail
+                cmgr.deleteFile(dir.getWeblog(), mf.getId() + "_sm");
             } catch (Exception e) {
                 log.debug("File to be deleted already unavailable in the file 
store");
             }
             this.strategy.remove(mf);
         }
-        Set<MediaFileDirectory> dirs = dir.getChildDirectories();
+
+        // Children
+        roller.flush();
+
+        // Set<MediaFileDirectory> dirs = dir.getChildDirectories();
+        // Recursive fix ConcurrentModificationException
+        Set<MediaFileDirectory> dirs = Collections
+                .synchronizedSet(new HashSet<MediaFileDirectory>(dir
+                        .getChildDirectories()));
         for (MediaFileDirectory md : dirs) {
             removeMediaFileDirectory(md);
         }
+
         this.strategy.remove(dir);
+
+        // Refresh associated parent
+        roller.flush();
+        strategy.refresh(dir.getParent());
+
     }
 
     public void removeMediaFileTag(String name, MediaFile entry)
@@ -916,10 +990,10 @@ public class JPAMediaFileManagerImpl imp
                 // Call back the entity to adjust its internal state
                 entry.onRemoveTag(name);
 
-                // Remove it from database
+                // Refresh it from database
                 this.strategy.remove(tag);
 
-                // Remove it from the collection
+                // Refresh it from the collection
                 it.remove();
             }
         }

Propchange: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
------------------------------------------------------------------------------
  Merged 
/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java:r1546818-1588713

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAOAuthManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAOAuthManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAOAuthManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAOAuthManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -31,7 +31,7 @@ import net.oauth.OAuthProblemException;
 import net.oauth.OAuthServiceProvider;
 import net.oauth.OAuthValidator;
 import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
 Sun Apr 20 13:38:51 2014
@@ -19,7 +19,6 @@
 package org.apache.roller.weblogger.business.jpa;
 
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.Enumeration;
 import java.util.Properties;
 import java.io.InputStream;
@@ -113,7 +112,22 @@ public class JPAPersistenceStrategy {
             }
         }
     }
-                        
+    /**
+     * Refresh changes to the current object.
+     * 
+     * @throws org.apache.roller.weblogger.WebloggerException on any error
+     */
+    public void refresh(Object clazz) throws WebloggerException {
+        if (clazz == null) {
+            return;
+        }
+        try {
+            EntityManager em = getEntityManager(true);
+            em.refresh(clazz);
+        } catch (Exception e) {
+            // ignored;
+        }
+    }
     /**
      * Flush changes to the datastore, commit transaction, release em.
      * @throws org.apache.roller.weblogger.WebloggerException on any error
@@ -183,11 +197,10 @@ public class JPAPersistenceStrategy {
      */
     public void removeAll(Collection pos) throws WebloggerException {
         EntityManager em = getEntityManager(true);
-        for (Iterator iterator = pos.iterator(); iterator.hasNext();) {
-            Object obj = iterator.next();
+        for (Object obj : pos) {
             em.remove(obj);
         }
-    }    
+    }
     
     /**
      * Retrieve object, no transaction needed.
@@ -284,8 +297,7 @@ public class JPAPersistenceStrategy {
     public Query getNamedUpdate(String queryName)
     throws WebloggerException {
         EntityManager em = getEntityManager(true);
-        Query q = em.createNamedQuery(queryName);
-        return q;
+        return em.createNamedQuery(queryName);
     }
     
     /**

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -93,9 +93,9 @@ public class JPAPingQueueManagerImpl imp
         this.saveQueueEntry(pingQueueEntry);
     }
 
-    public List getAllQueueEntries() 
+    public List<PingQueueEntry> getAllQueueEntries()
             throws WebloggerException {
-        return (List)strategy.getNamedQuery(
+        return (List<PingQueueEntry>) strategy.getNamedQuery(
                 "PingQueueEntry.getAllOrderByEntryTime").getResultList();
     }
 

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -23,15 +23,11 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.List;
-import java.util.Iterator;
 import javax.persistence.Query;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.pings.PingTargetManager;
 import org.apache.roller.weblogger.pojos.PingTarget;
-import org.apache.roller.weblogger.pojos.Weblog;
 
 /*
  * JPAPingTargetManagerImpl.java
@@ -42,13 +38,8 @@ import org.apache.roller.weblogger.pojos
 @com.google.inject.Singleton
 public class JPAPingTargetManagerImpl implements PingTargetManager {
     
-    /** The logger instance for this class. */
-    private static Log log = LogFactory.getLog(
-        JPAPingTargetManagerImpl.class);
-
     private final JPAPersistenceStrategy strategy;
-    
-    
+
     @com.google.inject.Inject
     protected JPAPingTargetManagerImpl(JPAPersistenceStrategy strategy) {
         this.strategy = strategy;
@@ -79,13 +70,6 @@ public class JPAPingTargetManagerImpl im
         q.executeUpdate();
     }
 
-    public void removeAllCustomPingTargets()
-            throws WebloggerException {
-        Query q = strategy.getNamedUpdate(
-            "PingTarget.removeByWebsiteNotNull");
-        q.executeUpdate();
-    }
-
     public void savePingTarget(PingTarget pingTarget)
             throws WebloggerException {
         strategy.store(pingTarget);
@@ -105,24 +89,17 @@ public class JPAPingTargetManagerImpl im
         
         String id = pingTarget.getId();
         
-        // Determine the set of "brother" targets (custom or common) 
+        // Determine the set of "brother" targets
         // among which this name should be unique.
-        List brotherTargets = null;
-        Weblog website = pingTarget.getWebsite();
-        if (website == null) {
-            brotherTargets = getCommonPingTargets();
-        } else {
-            brotherTargets = getCustomPingTargets(website);
-        }
-        
+        List<PingTarget> brotherTargets;
+        brotherTargets = getCommonPingTargets();
+
         // Within that set of targets, fail if there is a target 
         // with the same name and that target doesn't
         // have the same id.
-        for (Iterator i = brotherTargets.iterator(); i.hasNext();) {
-            PingTarget brother = (PingTarget) i.next();
-            // Fail if it has the same name but not the same id.
-            if (brother.getName().equals(name) && 
-                (id == null || !brother.getId().equals(id))) {
+        for (PingTarget brother : brotherTargets) {
+            if (brother.getName().equals(name) &&
+                    (id == null || !brother.getId().equals(id))) {
                 return false;
             }
         }
@@ -172,18 +149,10 @@ public class JPAPingTargetManagerImpl im
         }
     }
 
-    public List getCommonPingTargets()
-            throws WebloggerException {
-        Query q = strategy.getNamedQuery(
-                "PingTarget.getByWebsiteNullOrderByName");
-        return q.getResultList();
-    }
-
-    public List getCustomPingTargets(Weblog website)
+    public List<PingTarget> getCommonPingTargets()
             throws WebloggerException {
         Query q = strategy.getNamedQuery(
-                "PingTarget.getByWebsiteOrderByName");
-        q.setParameter(1, website);
+                "PingTarget.getPingTargetsOrderByName");
         return q.getResultList();
     }
 

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -19,7 +19,6 @@
 package org.apache.roller.weblogger.business.jpa;
 
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -35,7 +34,6 @@ import org.apache.roller.weblogger.confi
 import org.apache.roller.weblogger.config.runtime.PropertyDef;
 import org.apache.roller.weblogger.config.runtime.RuntimeConfigDefs;
 import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
-import org.apache.roller.weblogger.business.Weblogger;
 
 
 /*
@@ -58,7 +56,7 @@ public class JPAPropertiesManagerImpl im
      * Creates a new instance of JPAPropertiesManagerImpl
      */
     @com.google.inject.Inject
-    protected JPAPropertiesManagerImpl(Weblogger roller, 
JPAPersistenceStrategy strategy) {
+    protected JPAPropertiesManagerImpl(JPAPersistenceStrategy strategy) {
         log.debug("Instantiating JPA Properties Manager");
         this.strategy = strategy;
     }
@@ -69,13 +67,16 @@ public class JPAPropertiesManagerImpl im
      */
     public void initialize() throws InitializationException {
         
-        Map props = null;
+        Map<String, RuntimeConfigProperty> props;
         try {
+            // retrieve properties from database
             props = this.getProperties();
-            initializeMissingProps(props);
 
-            // save our changes
+            // if any default props missing from the properties DB table,
+            // initialize them and save them to that table.
+            initializeMissingProps(props);
             this.saveProperties(props);
+
         } catch (Exception e) {
             log.fatal("Failed to initialize runtime configuration properties."+
                     "Please check that the database has been upgraded!", e);
@@ -101,23 +102,19 @@ public class JPAPropertiesManagerImpl im
      * uses the property name as the key and the RuntimeConfigProperty object
      * as the value.
      */
-    public Map getProperties() throws WebloggerException {
+    public Map<String, RuntimeConfigProperty> getProperties() throws 
WebloggerException {
 
-        HashMap props = new HashMap();
-        List list = (List) 
strategy.getNamedQuery("RuntimeConfigProperty.getAll").getResultList();
+        HashMap<String, RuntimeConfigProperty> props = new HashMap<String, 
RuntimeConfigProperty>();
+        List<RuntimeConfigProperty> list = 
strategy.getNamedQuery("RuntimeConfigProperty.getAll").getResultList();
         /*
          * for convenience sake we are going to put the list of props
          * into a map for users to access it.  The value element of the
          * hash still needs to be the RuntimeConfigProperty object so that
          * we can save the elements again after they have been updated
          */
-        RuntimeConfigProperty prop = null;
-        Iterator it = list.iterator();
-        while(it.hasNext()) {
-            prop = (RuntimeConfigProperty) it.next();
+        for (RuntimeConfigProperty prop : list) {
             props.put(prop.getName(), prop);
         }
-
         return props;
     }
 
@@ -137,9 +134,8 @@ public class JPAPropertiesManagerImpl im
     public void saveProperties(Map properties) throws WebloggerException {
 
         // just go through the list and saveProperties each property
-        Iterator props = properties.values().iterator();
-        while (props.hasNext()) {
-            this.strategy.store((RuntimeConfigProperty) props.next());
+        for (Object prop : properties.values()) {
+            this.strategy.store(prop);
         }
     }
     
@@ -151,10 +147,10 @@ public class JPAPropertiesManagerImpl im
      *
      * If the Map of props is empty/null then we will initialize all 
properties.
      **/
-    private Map initializeMissingProps(Map props) {
+    private Map initializeMissingProps(Map<String, RuntimeConfigProperty> 
props) {
 
         if(props == null) {
-            props = new HashMap();
+            props = new HashMap<String, RuntimeConfigProperty>();
         }
 
         // start by getting our runtimeConfigDefs
@@ -166,35 +162,24 @@ public class JPAPropertiesManagerImpl im
             return props;
         }
 
-        // iterator through all the definitions and add properties
+        // iterate through all the definitions and add properties
         // that are not already in our props map
-        ConfigDef configDef = null;
-        DisplayGroup dGroup = null;
-        PropertyDef propDef = null;
-        Iterator defs = runtimeConfigDefs.getConfigDefs().iterator();
-        while(defs.hasNext()) {
-            configDef = (ConfigDef) defs.next();
-
-            Iterator groups = configDef.getDisplayGroups().iterator();
-            while(groups.hasNext()) {
-                dGroup = (DisplayGroup) groups.next();
-
-                Iterator propdefs = dGroup.getPropertyDefs().iterator();
-                while(propdefs.hasNext()) {
-                    propDef = (PropertyDef) propdefs.next();
+
+        for (ConfigDef configDef : runtimeConfigDefs.getConfigDefs()) {
+            for (DisplayGroup dGroup : configDef.getDisplayGroups()) {
+                for (PropertyDef propDef : dGroup.getPropertyDefs()) {
 
                     // do we already have this prop?  if not then add it
                     if(!props.containsKey(propDef.getName())) {
                         RuntimeConfigProperty newprop =
-                            new RuntimeConfigProperty(
-                                propDef.getName(), propDef.getDefaultValue());
+                                new RuntimeConfigProperty(
+                                        propDef.getName(), 
propDef.getDefaultValue());
 
                         props.put(propDef.getName(), newprop);
 
-                        log.info("Found uninitialized property " +
-                            propDef.getName() +
-                            " ... setting value to [" + 
-                            propDef.getDefaultValue() + "]");
+                        log.info("Property " + propDef.getName() +
+                            " not yet in roller_properties database table, 
will store with " +
+                            "default value of [" + propDef.getDefaultValue() + 
"`]");
                     }
                 }
             }

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -30,7 +30,7 @@ import javax.persistence.Query;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.Weblogger;
@@ -112,9 +112,8 @@ public class JPARefererManagerImpl imple
         if (blacklist.length == 0) {
             return;
         }
-        List referers = getBlackListedReferer(blacklist);
-        for (Iterator iterator = referers.iterator(); iterator.hasNext();) {
-            WeblogReferrer referer= (WeblogReferrer) iterator.next();
+        List<WeblogReferrer> referers = getBlackListedReferer(blacklist);
+        for (WeblogReferrer referer : referers) {
             this.strategy.remove(referer);
         }
     }
@@ -136,9 +135,8 @@ public class JPARefererManagerImpl imple
         if (blacklist.length == 0) {
             return;
         }
-        List referers = getBlackListedReferer(website, blacklist);
-        for (Iterator iterator = referers.iterator(); iterator.hasNext();) {
-            WeblogReferrer referer= (WeblogReferrer) iterator.next();
+        List<WeblogReferrer> referers = getBlackListedReferer(website, 
blacklist);
+        for (WeblogReferrer referer : referers) {
             this.strategy.remove(referer);
         }
     }
@@ -173,7 +171,7 @@ public class JPARefererManagerImpl imple
      * @param length Maximum number of results to return (for paging)
      * @return List of StatCount objects.
      */
-    public List getHotWeblogs(int sinceDays, int offset, int length)
+    public List<StatCount> getHotWeblogs(int sinceDays, int offset, int length)
             throws WebloggerException {
 
         if (log.isDebugEnabled()) {
@@ -200,7 +198,7 @@ public class JPARefererManagerImpl imple
         q.setParameter(1, Boolean.TRUE);
         q.setParameter(2, Boolean.TRUE);
         q.setParameter(3, start);
-        List queryResults = (List)q.getResultList();
+        List queryResults = q.getResultList();
         for (Iterator it = queryResults.iterator(); it.hasNext(); ) {
             Object[] row = (Object[])it.next();
             long hits = ((Number)row[0]).longValue();
@@ -258,7 +256,7 @@ public class JPARefererManagerImpl imple
      * @param weblog
      * @return List of type WeblogReferrer
      */
-    public List getReferers(Weblog weblog) throws WebloggerException {
+    public List<WeblogReferrer> getReferers(Weblog weblog) throws 
WebloggerException {
         Query q = strategy.getNamedQuery(
             "WeblogReferrer.getByWebsiteOrderByTotalHitsDesc");
         q.setParameter(1, weblog);
@@ -270,7 +268,7 @@ public class JPARefererManagerImpl imple
      * @param website Web site.
      * @return List of type WeblogReferrer
      */
-    public List getTodaysReferers(Weblog website) throws WebloggerException {
+    public List<WeblogReferrer> getTodaysReferers(Weblog website) throws 
WebloggerException {
         Query q = strategy.getNamedQuery(
             
"WeblogReferrer.getByWebsite&DayHitsGreaterZeroOrderByDayHitsDesc");
         q.setParameter(1, website);
@@ -284,7 +282,7 @@ public class JPARefererManagerImpl imple
      * @return List of type WeblogReferrer.
      * @throws org.apache.roller.weblogger.WebloggerException
      */
-    public List getReferersToDate(Weblog website, String date)
+    public List<WeblogReferrer> getReferersToDate(Weblog website, String date)
             throws WebloggerException {
 
         if (website==null) {
@@ -309,7 +307,7 @@ public class JPARefererManagerImpl imple
      * @return List of WeblogReferrer objects.
      * @throws org.apache.roller.weblogger.WebloggerException
      */
-    public List getReferersToEntry(String entryid) throws WebloggerException {
+    public List<WeblogReferrer> getReferersToEntry(String entryid) throws 
WebloggerException {
         if (null == entryid) {
             throw new WebloggerException("entryid is null");
         }
@@ -338,7 +336,7 @@ public class JPARefererManagerImpl imple
     /**
      * Query for collection of referers.
      */
-    protected List getReferersWithSameTitle(Weblog website,
+    protected List<WeblogReferrer> getReferersWithSameTitle(Weblog website,
                                             String requestUrl,
                                             String title,
                                             String excerpt)
@@ -385,7 +383,7 @@ public class JPARefererManagerImpl imple
             return;
         }
 
-        Weblog weblog = null;
+        Weblog weblog;
         WeblogEntry entry = null;
 
         // lookup the weblog now
@@ -408,7 +406,7 @@ public class JPARefererManagerImpl imple
         }
 
         try {
-            List matchRef = null;
+            List matchRef;
 
             // try to find existing WeblogReferrer for referrerUrl
             if (referrerUrl == null || referrerUrl.trim().length() < 8) {
@@ -423,8 +421,8 @@ public class JPARefererManagerImpl imple
                 matchRef = getMatchingReferers(weblog, requestUrl, 
referrerUrl);
 
                 // If referer was not found, try adding or leaving off 'www'
-                if ( matchRef.size() == 0 ) {
-                    String secondTryUrl = null;
+                if (matchRef.size() == 0) {
+                    String secondTryUrl;
                     if ( referrerUrl.startsWith("http://www";) ) {
                         secondTryUrl = "http://"+referrerUrl.substring(11);
                     } else {
@@ -465,7 +463,7 @@ public class JPARefererManagerImpl imple
                         null,
                         requestUrl,
                         null,
-                        "", // Read comment above regarding Derby bug
+                        "",
                         Boolean.FALSE,
                         Boolean.FALSE,
                         one,
@@ -578,16 +576,14 @@ public class JPARefererManagerImpl imple
 
                         // LOOP: find the referer with the highest weight
                         Boolean visible = Boolean.FALSE;
-                        List refs= getReferersWithSameTitle(
+                        List<WeblogReferrer> refs= getReferersWithSameTitle(
                                 mReferer.getWebsite(),
                                 mReferer.getRequestUrl(),
                                 lb.getTitle(),
                                 lb.getExcerpt());
                         WeblogReferrer chosen = null;
                         int maxweight = 0;
-                        for (Iterator rdItr = 
refs.iterator();rdItr.hasNext();) {
-                            WeblogReferrer referer = (WeblogReferrer) 
rdItr.next();
-
+                        for (WeblogReferrer referer : refs) {
                             int weight = referer.getRefererUrl().length();
                             if (referer.getRefererUrl().indexOf('#') != -1) {
                                 weight += 100;
@@ -603,14 +599,11 @@ public class JPARefererManagerImpl imple
                                 // replacement must be visible as well.
                                 visible = Boolean.TRUE;
                             }
-
                         }
 
                         // LOOP: to mark all of the lower weight ones
                         // as duplicates
-                        for (Iterator rdItr = 
refs.iterator();rdItr.hasNext();) {
-                            WeblogReferrer referer = (WeblogReferrer) 
rdItr.next();
-
+                        for (WeblogReferrer referer : refs) {
                             if (!referer.equals(chosen)) {
                                 referer.setDuplicate(Boolean.TRUE);
                             } else {
@@ -619,8 +612,6 @@ public class JPARefererManagerImpl imple
                             }
                             saveReferer(referer);
                         }
-
-
                     }
                 } else {
                     // It is not a linkback, but store it anyway
@@ -655,14 +646,14 @@ public class JPARefererManagerImpl imple
         query.executeUpdate();
     }
 
-    protected List getBlackListedReferer(String[] blacklist) throws
+    protected List<WeblogReferrer> getBlackListedReferer(String[] blacklist) 
throws
             WebloggerException {
         StringBuilder queryString = getQueryStringForBlackList(blacklist);
         Query query = strategy.getDynamicQuery(queryString.toString());
-        return (List) query.getResultList();
+        return query.getResultList();
     }
 
-    protected List getBlackListedReferer(Weblog website, String[] blacklist) 
+    protected List<WeblogReferrer> getBlackListedReferer(Weblog website, 
String[] blacklist)
             throws WebloggerException {
         StringBuilder queryString = getQueryStringForBlackList(blacklist);
         queryString.append(" AND r.website = ?1 ");

Modified: 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
URL: 
http://svn.apache.org/viewvc/roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java?rev=1588757&r1=1588756&r2=1588757&view=diff
==============================================================================
--- 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
 (original)
+++ 
roller/branches/rome2/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
 Sun Apr 20 13:38:51 2014
@@ -28,8 +28,7 @@ import org.apache.roller.weblogger.busin
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.Hashtable;
-import java.util.Iterator;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -51,7 +50,7 @@ public class JPAUserManagerImpl implemen
     private final JPAPersistenceStrategy strategy;
     
     // cached mapping of userNames -> userIds
-    private Map userNameToIdMap = new Hashtable();
+    private Map<String, String> userNameToIdMap = new HashMap<String, 
String>();
     
 
     @com.google.inject.Inject
@@ -77,7 +76,7 @@ public class JPAUserManagerImpl implemen
         // remove permissions, maintaining both sides of relationship
         List<WeblogPermission> perms = getWeblogPermissions(user);
         for (WeblogPermission perm : perms) {
-            this.strategy.remove(perms);
+            this.strategy.remove(perm);
         }
         this.strategy.remove(user);
 
@@ -94,7 +93,7 @@ public class JPAUserManagerImpl implemen
     
     public void addUser(User newUser) throws WebloggerException {
 
-        if(newUser == null) {
+        if (newUser == null) {
             throw new WebloggerException("cannot add null user");
         }
         
@@ -178,7 +177,7 @@ public class JPAUserManagerImpl implemen
         for (int i=0; i<params.length; i++) {
             query.setParameter(i+1, params[i]);
         }
-        User user = null;
+        User user;
         try {
             user = (User)query.getSingleResult();
         } catch (NoResultException e) {
@@ -194,17 +193,12 @@ public class JPAUserManagerImpl implemen
         return user;
     }
 
-    public List getUsers(Weblog weblog, Boolean enabled, Date startDate,
+    public List<User> getUsers(Weblog weblog, Boolean enabled, Date startDate,
             Date endDate, int offset, int length)
             throws WebloggerException {
-        Query query = null;
-
-        // if we are doing date range then we must have an end date
-        if (startDate != null && endDate == null) {
-            endDate = new Date();
-        }
+        Query query;
 
-        List params = new ArrayList();
+        List<Object> params = new ArrayList<Object>();
         int size = 0;
         StringBuilder queryString = new StringBuilder();
         StringBuilder whereClause = new StringBuilder();
@@ -212,7 +206,7 @@ public class JPAUserManagerImpl implemen
         if (weblog != null) {
             queryString.append("SELECT u FROM User u JOIN u.permissions p ");
             params.add(size++, weblog);
-            whereClause.append(" WHERE p.website = ?" + size);
+            whereClause.append(" WHERE p.website = ?").append(size);
         } else {
             queryString.append("SELECT u FROM User u ");
         }
@@ -224,7 +218,7 @@ public class JPAUserManagerImpl implemen
                 whereClause.append(" AND ");
             }
             params.add(size++, enabled);
-            whereClause.append("u.enabled = ?" + size);
+            whereClause.append("u.enabled = ?").append(size);
         }
 
         if (startDate != null) {
@@ -234,16 +228,14 @@ public class JPAUserManagerImpl implemen
                 whereClause.append(" AND ");
             }
 
-            // if we are doing date range then we must have an end date
-            if(endDate == null) {
-                endDate = new Date();
-            }
             Timestamp start = new Timestamp(startDate.getTime());
-            Timestamp end = new Timestamp(endDate.getTime());
+            // if we are doing date range then we must have an end date
+            // TODO: why? confirm end date needed
+            Timestamp end = new Timestamp(endDate != null ? endDate.getTime() 
: new Date().getTime());
             params.add(size++, start);
-            whereClause.append("u.dateCreated > ?" + size);
+            whereClause.append("u.dateCreated > ?").append(size);
             params.add(size++, end);
-            whereClause.append(" AND u.dateCreated < ?" + size);
+            whereClause.append(" AND u.dateCreated < ?").append(size);
         }
         whereClause.append(" ORDER BY u.dateCreated DESC");
         query = strategy.getDynamicQuery(queryString.toString() + 
whereClause.toString());
@@ -261,33 +253,27 @@ public class JPAUserManagerImpl implemen
     }
 
     
-    public List getUsers(int offset, int length) throws WebloggerException {
+    public List<User> getUsers(int offset, int length) throws 
WebloggerException {
         return getUsers(Boolean.TRUE, null, null, offset, length);
     }
 
     
-    public List getUsers(Boolean enabled, Date startDate, Date endDate,
+    public List<User> getUsers(Boolean enabled, Date startDate, Date endDate,
             int offset, int length)
             throws WebloggerException {
-        Query query = null;
-        List results = null;
-        boolean setRange = offset != 0 || length != -1;
+        Query query;
+
+        Timestamp end = new Timestamp(endDate != null ? endDate.getTime() : 
new Date().getTime());
 
-        if (endDate == null) {
-            endDate = new Date();
-        }
-        
         if (enabled != null) {
             if (startDate != null) {
                 Timestamp start = new Timestamp(startDate.getTime());
-                Timestamp end = new Timestamp(endDate.getTime());
                 query = strategy.getNamedQuery(
                         
"User.getByEnabled&EndDate&StartDateOrderByStartDateDesc");
                 query.setParameter(1, enabled);
                 query.setParameter(2, end);
                 query.setParameter(3, start);
             } else {
-                Timestamp end = new Timestamp(endDate.getTime());
                 query = strategy.getNamedQuery(
                         "User.getByEnabled&EndDateOrderByStartDateDesc");
                 query.setParameter(1, enabled);
@@ -296,13 +282,11 @@ public class JPAUserManagerImpl implemen
         } else {
             if (startDate != null) {
                 Timestamp start = new Timestamp(startDate.getTime());
-                Timestamp end = new Timestamp(endDate.getTime());
                 query = strategy.getNamedQuery(
                         "User.getByEndDate&StartDateOrderByStartDateDesc");
                 query.setParameter(1, end);
                 query.setParameter(2, start);
             } else {
-                Timestamp end = new Timestamp(endDate.getTime());
                 query = strategy.getNamedQuery(
                         "User.getByEndDateOrderByStartDateDesc");
                 query.setParameter(1, end);
@@ -321,12 +305,8 @@ public class JPAUserManagerImpl implemen
     /**
      * Get users of a website
      */
-    public List getUsers(Weblog website, Boolean enabled, int offset, int 
length) throws WebloggerException {
-        Query query = null;
-
-        if (length == -1) {
-            length = Integer.MAX_VALUE - offset;
-        }
+    public List<User> getUsers(Weblog website, Boolean enabled, int offset, 
int length) throws WebloggerException {
+        Query query;
 
         if (enabled != null) {
             if (website != null) {
@@ -355,9 +335,9 @@ public class JPAUserManagerImpl implemen
     }
 
     
-    public List getUsersStartingWith(String startsWith, Boolean enabled,
+    public List<User> getUsersStartingWith(String startsWith, Boolean enabled,
             int offset, int length) throws WebloggerException {
-        Query query = null;
+        Query query;
 
         if (enabled != null) {
             if (startsWith != null) {
@@ -472,7 +452,7 @@ public class JPAUserManagerImpl implemen
         for (int i = 0; i < params.length; i++) {
             query.setParameter(i + 1, params[i]);
         }
-        User user = null;
+        User user;
         try {
             user = (User) query.getSingleResult();
         } catch (NoResultException e) {
@@ -648,7 +628,7 @@ public class JPAUserManagerImpl implemen
         Query q = 
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
         q.setParameter(1, user.getUserName());
         q.setParameter(2, weblog.getHandle());
-        WeblogPermission existingPerm = null;
+        WeblogPermission existingPerm;
         try {
             existingPerm = (WeblogPermission)q.getSingleResult();
 
@@ -667,7 +647,7 @@ public class JPAUserManagerImpl implemen
         Query q = 
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
         q.setParameter(1, user.getUserName());
         q.setParameter(2, weblog.getHandle());
-        WeblogPermission existingPerm = null;
+        WeblogPermission existingPerm;
         try {
             existingPerm = (WeblogPermission)q.getSingleResult();
         } catch (NoResultException ignored) {
@@ -684,7 +664,7 @@ public class JPAUserManagerImpl implemen
         Query q = 
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
         q.setParameter(1, user.getUserName());
         q.setParameter(2, weblog.getHandle());
-        WeblogPermission oldperm = null;
+        WeblogPermission oldperm;
         try {
             oldperm = (WeblogPermission)q.getSingleResult();
         } catch (NoResultException ignored) {
@@ -759,13 +739,13 @@ public class JPAUserManagerImpl implemen
     public List<String> getRoles(User user) throws WebloggerException {
         Query q = strategy.getNamedQuery("UserRole.getByUserName");
         q.setParameter(1, user.getUserName());
-        List roles = q.getResultList();
+        List<UserRole> roles = q.getResultList();
         List<String> roleNames = new ArrayList<String>();
-        for (Iterator it = roles.iterator(); it.hasNext();) {
-            UserRole userRole = (UserRole)it.next();
-            roleNames.add(userRole.getRole());
+        if (roles != null) {
+            for (UserRole userRole : roles) {
+                roleNames.add(userRole.getRole());
+            }
         }
-
         return roleNames;
     }
 


Reply via email to