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; }
