You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by cl...@apache.org on 2006/12/12 23:52:46 UTC
svn commit: r486394 - in /incubator/roller/trunk/sandbox/jdobackend: ./
src/org/apache/roller/business/datamapper/
src/org/apache/roller/business/jdo/ src/org/apache/roller/business/jpa/
src/org/apache/roller/pojos/
Author: clr
Date: Tue Dec 12 14:52:45 2006
New Revision: 486394
URL: http://svn.apache.org/viewvc?view=rev&rev=486394
Log:
Datamapper updates
Added:
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRefererManagerImpl.java
- copied, changed from r483601, incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperReferrerManagerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
Removed:
incubator/roller/trunk/sandbox/jdobackend/HibernateToJDO.xsl
incubator/roller/trunk/sandbox/jdobackend/HibernateToJPA.xsl
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperReferrerManagerImpl.java
Modified:
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerPlanetManagerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORollerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARollerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAWeblogManagerImpl.java
incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RefererData.orm.xml
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPersistenceStrategy.java Tue Dec 12 14:52:45 2006
@@ -47,7 +47,7 @@
* @return the object persisted
* @throws org.apache.roller.RollerException on any error
*/
- PersistentObject store(PersistentObject obj)
+ Object store(Object obj)
throws RollerException;
/**
@@ -66,7 +66,7 @@
* @param po the persistent object to remove
* @throws org.apache.roller.RollerException on any error
*/
- public void remove(PersistentObject po)
+ public void remove(Object po)
throws RollerException;
/**
@@ -94,7 +94,7 @@
* @return the object retrieved
* @throws RollerException on any error retrieving object
*/
- public PersistentObject load(Class clazz, String id)
+ public Object load(Class clazz, String id)
throws RollerException;
/**
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperPlanetManagerImpl.java Tue Dec 12 14:52:45 2006
@@ -43,17 +43,11 @@
import org.apache.roller.RollerException;
-import org.apache.roller.business.Roller;
-import org.apache.roller.business.RollerFactory;
-import org.apache.roller.business.WeblogManager;
-import org.apache.roller.config.RollerRuntimeConfig;
import org.apache.roller.planet.business.PlanetManager;
import org.apache.roller.planet.pojos.PlanetConfigData;
import org.apache.roller.planet.pojos.PlanetEntryData;
import org.apache.roller.planet.pojos.PlanetGroupData;
import org.apache.roller.planet.pojos.PlanetSubscriptionData;
-import org.apache.roller.pojos.WeblogEntryData;
-import org.apache.roller.pojos.WebsiteData;
import org.apache.roller.util.rome.DiskFeedInfoCache;
Copied: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRefererManagerImpl.java (from r483601, incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperReferrerManagerImpl.java)
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRefererManagerImpl.java?view=diff&rev=486394&p1=incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperReferrerManagerImpl.java&r1=483601&p2=incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRefererManagerImpl.java&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperReferrerManagerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRefererManagerImpl.java Tue Dec 12 14:52:45 2006
@@ -27,6 +27,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.commons.lang.StringUtils;
import org.apache.roller.RollerException;
@@ -45,24 +46,23 @@
import org.apache.roller.util.Utilities;
/*
- * DatamapperReferrerManagerImpl.java
+ * DatamapperRefererManagerImpl.java
*
* Created on May 31, 2006, 4:06 PM
*
*/
-public class DatamapperReferrerManagerImpl implements RefererManager {
+public abstract class DatamapperRefererManagerImpl implements RefererManager {
private static Log log = LogFactory.getLog(
- DatamapperReferrerManagerImpl.class);
+ DatamapperRefererManagerImpl.class);
protected static final String DAYHITS = "dayHits";
protected static final String TOTALHITS = "totalHits";
/** The strategy for this manager. */
- private DatamapperPersistenceStrategy strategy;
+ protected DatamapperPersistenceStrategy strategy;
- /** Creates a new instance of DatamapperReferrerManagerImpl */
- public DatamapperReferrerManagerImpl
- (DatamapperPersistenceStrategy strategy) {
+ /** Creates a new instance of DatamapperRefererManagerImpl */
+ public DatamapperRefererManagerImpl(DatamapperPersistenceStrategy strategy) {
log.debug("Instantiating Datamapper Referer Manager");
this.strategy = strategy;
@@ -80,71 +80,51 @@
* Clear referrer dayhits and remove referrers without excerpts.
*/
public void clearReferrers() throws RollerException {
- // TODO not implemented
+ clearDayHits();
-// Dialect currentDialect = ((SessionFactoryImplementor)session.getSessionFactory()).getDialect();
-// String reset = "update RefererData set dayHits=0";
-// session.createQuery(reset).executeUpdate();
-// String delete = null;
-// if ( currentDialect instanceof SQLServerDialect || currentDialect instanceof OracleDialect ){
-// delete = "delete RefererData where excerpt is null or excerpt like ''";
-// } else {
-// delete = "delete RefererData where excerpt is null or excerpt=''";
-// }
-// session.createQuery(delete).executeUpdate();
+ //TODO: Datamapper port: The original code used two different expressions
+ // to find empty exerpt
+ // (1) excerpt like '' for mssql, oracle and derby
+ // (2) excerpt = '' for all other
+ // I could verify that (1) works for mssql, oralce, derby, and mysql
+ strategy.newRemoveQuery(RefererData.class,
+ "RefererData.deleteByNullOrEmptyExcerpt").removeAll();
}
+ abstract protected void clearDayHits() throws RollerException;
+
/**
* Clear referrer dayhits and remove referrers without excerpts.
*/
public void clearReferrers(WebsiteData website) throws RollerException {
- // TODO not implemented
+ clearDayHitsByWebsite(website);
+
+ //TODO: Datamapper port: Same comments as for method clearReferrers() apply for the expression
+ strategy.newRemoveQuery(RefererData.class,
+ "RefererData.deleteByNullOrEmptyExcerpt&website").removeAll(website);
-// Dialect currentDialect = ((SessionFactoryImplementor)session.getSessionFactory()).getDialect();
-// String reset = "update RefererData set dayHits=0 where website=:site";
-// session.createQuery(reset)
-// .setParameter("site",website).executeUpdate();
-// String delete = null;
-// if ( currentDialect instanceof SQLServerDialect || currentDialect instanceof OracleDialect ){
-// delete = "delete RefererData where website=:site and (excerpt is null or excerpt like '')";
-// } else {
-// delete = "delete RefererData where website=:site and (excerpt is null or excerpt='')";
-// }
-// session.createQuery(delete)
-// .setParameter("site",website).executeUpdate();
}
+ abstract protected void clearDayHitsByWebsite(WebsiteData website) throws RollerException;
+
/**
* Apply ignoreWord/spam filters to all referers in system.
*/
public void applyRefererFilters() throws RollerException {
- // TODO not implemented
-
-// Criteria criteria = session.createCriteria(RefererData.class);
-//
-// String spamwords = RollerRuntimeConfig.getProperty("spam.blacklist");
-//
-// String[] blacklist = StringUtils.split(
-// StringUtils.deleteWhitespace(spamwords),",");
-// Junction or = Expression.disjunction();
-// for (int i=0; i<blacklist.length; i++) {
-// String ignoreWord = blacklist[i].trim();
-// //log.debug("including ignore word - "+ignoreWord);
-// or.add(Expression.ilike("refererUrl","%"+ignoreWord+"%"));
-// }
-// criteria.add(Expression.conjunction()
-// .add(Expression.disjunction().add(Expression.isNull("excerpt")).add(Expression.eq("excerpt", "")))
-// .add(or)
-// );
-//
-// log.debug("removing spam referers - "+criteria.list().size());
-//
-// Iterator referer = criteria.list().iterator();
-// while (referer.hasNext()) {
-// this.strategy.remove((RefererData) referer.next());
-// }
+ String spamwords = RollerRuntimeConfig.getProperty("spam.blacklist");
+ String[] blacklist = StringUtils.split(
+ StringUtils.deleteWhitespace(spamwords),",");
+ if (blacklist.length == 0) return;
+ List referers = getBlackListedReferer(blacklist);
+ for (Iterator iterator = referers.iterator(); iterator.hasNext();) {
+ RefererData referer= (RefererData) iterator.next();
+ this.strategy.remove(referer);
+ }
}
+ protected abstract List getBlackListedReferer(String[] blacklist) throws
+ RollerException;
+
/**
* Apply ignoreWord/spam filters to all referers in website.
*/
@@ -155,28 +135,18 @@
if (null == website) throw new RollerException("website is null");
if (null == website.getBlacklist()) return;
-// Criteria criteria = session.createCriteria(RefererData.class);
-//
-// String[] blacklist = StringUtils.split(
-// StringUtils.deleteWhitespace(website.getBlacklist()),",");
-// if (blacklist.length == 0) return;
-//
-// Junction or = Expression.disjunction();
-// for (int i=0; i<blacklist.length; i++) {
-// String ignoreWord = blacklist[i].trim();
-// or.add(Expression.ilike("refererUrl","%"+ignoreWord+"%"));
-// }
-// criteria.add(Expression.conjunction()
-// .add(Expression.disjunction().add(Expression.isNull("excerpt")).add(Expression.eq("excerpt", "")))
-// .add(Expression.eq("website",website))
-// .add(or)
-// );
-//
-// Iterator referer = criteria.list().iterator();
-// while (referer.hasNext()) {
-// this.strategy.remove((RefererData) referer.next());
-// }
+ String[] blacklist = StringUtils.split(
+ StringUtils.deleteWhitespace(website.getBlacklist()),",");
+ if (blacklist.length == 0) return;
+ List referers = getBlackListedReferer(website, blacklist);
+ for (Iterator iterator = referers.iterator(); iterator.hasNext();) {
+ RefererData referer= (RefererData) iterator.next();
+ this.strategy.remove(referer);
+ }
}
+
+ protected abstract List getBlackListedReferer(WebsiteData website,
+ String[] blacklist) throws RollerException;
protected List getExistingReferers(WebsiteData website, String dateString,
String permalink) throws RollerException {
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerImpl.java Tue Dec 12 14:52:45 2006
@@ -31,7 +31,6 @@
import org.apache.roller.business.pings.PingQueueManager;
import org.apache.roller.business.pings.PingTargetManager;
import org.apache.roller.business.referrers.RefererManager;
-import org.apache.roller.planet.business.PlanetManager;
/**
* A Datamapper specific implementation of the Roller business layer.
@@ -51,7 +50,6 @@
// references to the managers we maintain
private BookmarkManager bookmarkManager = null;
private PropertiesManager propertiesManager = null;
- private PlanetManager planetManager = null;
private RefererManager referrerManager = null;
private UserManager userManager = null;
private WeblogManager weblogManager = null;
@@ -158,21 +156,6 @@
}
/**
- * @see org.apache.roller.business.Roller#getPlanetManager()
- */
- public PlanetManager getPlanetManager() {
- if ( planetManager == null ) {
- planetManager = createDatamapperPlanetManager(strategy);
- }
- return planetManager;
- }
-
- protected PlanetManager createDatamapperPlanetManager(
- DatamapperPersistenceStrategy strategy) {
- return new DatamapperPlanetManagerImpl(strategy);
- }
-
- /**
* @see org.apache.roller.business.Roller#getPropertiesManager()
*/
public PropertiesManager getPropertiesManager() {
@@ -192,15 +175,13 @@
*/
public RefererManager getRefererManager() {
if ( referrerManager == null ) {
- referrerManager = createDatamapperReferrerManager(strategy);
+ referrerManager = createDatamapperRefererManagerImpl(strategy);
}
return referrerManager;
}
- protected RefererManager createDatamapperReferrerManager(
- DatamapperPersistenceStrategy strategy) {
- return new DatamapperReferrerManagerImpl(strategy);
- }
+ protected abstract RefererManager createDatamapperRefererManagerImpl(
+ DatamapperPersistenceStrategy strategy);
/**
* @see org.apache.roller.business.Roller#getUserManager()
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerPlanetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerPlanetManagerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerPlanetManagerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/datamapper/DatamapperRollerPlanetManagerImpl.java Tue Dec 12 14:52:45 2006
@@ -153,9 +153,10 @@
try {
WeblogEntryData rollerEntry =
(WeblogEntryData)entryIter.next();
- PlanetEntryData entry =
- new PlanetEntryData(rollerEntry, sub,
- pagePlugins);
+ PlanetEntryData entry = null;
+//TODO: DatamapperPort Need to sync up code with trunk
+// new PlanetEntryData(rollerEntry, sub,
+// pagePlugins);
saveEntry(entry);
newEntries.add(entry);
} catch (Exception e) {
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDOPersistenceStrategy.java Tue Dec 12 14:52:45 2006
@@ -30,8 +30,6 @@
import org.apache.roller.business.datamapper.DatamapperPersistenceStrategy;
import org.apache.roller.business.datamapper.DatamapperQuery;
import org.apache.roller.business.datamapper.DatamapperRemoveQuery;
-import org.apache.roller.pojos.PersistentObject;
-import org.apache.roller.pojos.UserData;
/**
* JDOPersistenceStrategy is responsible for the lowest-level interaction
@@ -95,7 +93,7 @@
* @return the object persisted
* @throws org.apache.roller.RollerException on any error
*/
- public PersistentObject store(PersistentObject obj)
+ public Object store(Object obj)
throws RollerException {
PersistenceManager pm = getPersistenceManager(true);
pm.makePersistent(obj);
@@ -120,7 +118,7 @@
* @param po the persistent object to remove
* @throws org.apache.roller.RollerException on any error
*/
- public void remove(PersistentObject po)
+ public void remove(Object po)
throws RollerException {
PersistenceManager pm = getPersistenceManager(true);
pm.deletePersistent(po);
@@ -155,10 +153,10 @@
* @return the object retrieved
* @throws RollerException on any error retrieving object
*/
- public PersistentObject load(Class clazz, String id)
+ public Object load(Class clazz, String id)
throws RollerException {
PersistenceManager pm = getPersistenceManager(false);
- return (PersistentObject)pm.getObjectById(clazz, id);
+ return pm.getObjectById(clazz, id);
}
/**
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORollerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORollerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORollerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jdo/JDORollerImpl.java Tue Dec 12 14:52:45 2006
@@ -26,6 +26,7 @@
import org.apache.roller.business.Roller;
import org.apache.roller.business.UserManager;
import org.apache.roller.business.WeblogManager;
+import org.apache.roller.business.referrers.RefererManager;
/**
* Implements Roller, the entry point interface for the Roller business tier
@@ -55,6 +56,10 @@
protected WeblogManager createDatamapperWeblogManager(
DatamapperPersistenceStrategy strategy) {
+ return null;
+ }
+
+ protected RefererManager createDatamapperRefererManagerImpl(DatamapperPersistenceStrategy strategy) {
return null;
}
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAPersistenceStrategy.java Tue Dec 12 14:52:45 2006
@@ -33,7 +33,6 @@
import org.apache.roller.business.datamapper.DatamapperPersistenceStrategy;
import org.apache.roller.business.datamapper.DatamapperQuery;
import org.apache.roller.business.datamapper.DatamapperRemoveQuery;
-import org.apache.roller.pojos.PersistentObject;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
@@ -108,7 +107,7 @@
* @return the object persisted
* @throws org.apache.roller.RollerException on any error
*/
- public PersistentObject store(PersistentObject obj) throws RollerException {
+ public Object store(Object obj) throws RollerException {
EntityManager em = getEntityManager(true);
em.persist(obj);
return obj;
@@ -131,7 +130,7 @@
* @param po the persistent object to remove
* @throws org.apache.roller.RollerException on any error
*/
- public void remove(PersistentObject po) throws RollerException {
+ public void remove(Object po) throws RollerException {
EntityManager em = getEntityManager(true);
em.remove(po);
}
@@ -170,10 +169,10 @@
* @return the object retrieved
* @throws RollerException on any error retrieving object
*/
- public PersistentObject load(Class clazz, String id)
+ public Object load(Class clazz, String id)
throws RollerException {
EntityManager em = getEntityManager(false);
- return (PersistentObject) em.find(clazz, id);
+ return em.find(clazz, id);
}
/**
Added: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java?view=auto&rev=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java (added)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARefererManager.java Tue Dec 12 14:52:45 2006
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.business.jpa;
+
+import org.apache.roller.business.datamapper.DatamapperRefererManagerImpl;
+import org.apache.roller.business.datamapper.DatamapperQuery;
+import org.apache.roller.RollerException;
+import org.apache.roller.pojos.WebsiteData;
+
+import java.util.List;
+
+/**
+ * @author Mitesh Meswani
+ */
+public class JPARefererManager extends DatamapperRefererManagerImpl {
+ public JPARefererManager(JPAPersistenceStrategy strategy) {
+ super(strategy);
+ }
+
+ protected void clearDayHits() throws RollerException {
+ JPAUpdateQuery query = ((JPAPersistenceStrategy) strategy).
+ newUpdateQuery("RefererData.clearDayHits");
+ query.updateAll();
+ }
+
+ protected void clearDayHitsByWebsite(WebsiteData website) throws
+ RollerException {
+ JPAUpdateQuery query = ((JPAPersistenceStrategy) strategy).
+ newUpdateQuery("RefererData.clearDayHitsByWebsite");
+ query.updateAll(website);
+ }
+
+ protected List getBlackListedReferer(String[] blacklist) throws
+ RollerException {
+ StringBuffer queryString = getQueryStringForBlackList(blacklist);
+ DatamapperQuery query =
+ ((JPAPersistenceStrategy) strategy).newDynamicQuery(queryString.toString());
+ return (List) query.execute();
+ }
+
+ protected List getBlackListedReferer(WebsiteData website, String[] blacklist)
+ throws RollerException {
+ StringBuffer queryString = getQueryStringForBlackList(blacklist);
+ queryString.append(" AND r.website = ?1 ");
+ DatamapperQuery query =
+ ((JPAPersistenceStrategy) strategy).newDynamicQuery(queryString.toString());
+ return (List) query.execute(website);
+ }
+
+ /**
+ * Generates a JPQL query of form
+ * SELECT r FROM RefererData r WHERE
+ * ( refererUrl like %blacklist[1] ..... OR refererUrl like %blacklist[n])
+ * AND (r.excerpt IS NULL OR r.excerpt LIKE '')
+ * @param blacklist
+ * @return
+ */
+ private StringBuffer getQueryStringForBlackList(String[] blacklist) {
+ assert blacklist.length > 0;
+ StringBuffer queryString = new StringBuffer("SELECT r FROM RefererData r WHERE (");
+ //Search for any matching entry from blacklist[]
+ final String OR = " OR ";
+ for (int i = 0; i < blacklist.length; i++) {
+ String ignoreWord = blacklist[i];
+ //TODO: DataMapper port: original code use "like ignore case" as follows
+ // or.add(Expression.ilike("refererUrl","%"+ignoreWord+"%"));
+ // There is no equivalent for it in JPA
+ queryString.append("refererUrl like %").append(ignoreWord.trim()).append('%').
+ append(OR);
+ }
+ // Get rid of last OR
+ queryString.delete(queryString.length() - OR.length(), queryString.length());
+ queryString.append(" ) ");
+ queryString.append(" AND (r.excerpt IS NULL OR r.excerpt LIKE '')");
+ return queryString;
+ }
+
+}
+
+
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARollerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARollerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARollerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPARollerImpl.java Tue Dec 12 14:52:45 2006
@@ -23,8 +23,8 @@
import org.apache.roller.RollerException;
import org.apache.roller.business.datamapper.DatamapperRollerImpl;
import org.apache.roller.business.datamapper.DatamapperPersistenceStrategy;
-import org.apache.roller.business.jpa.JPAUserManagerImpl;
import org.apache.roller.business.Roller;
+import org.apache.roller.business.referrers.RefererManager;
import org.apache.roller.business.UserManager;
import org.apache.roller.business.WeblogManager;
@@ -56,6 +56,10 @@
protected WeblogManager createDatamapperWeblogManager(
DatamapperPersistenceStrategy strategy) {
return null;
+ }
+
+ protected RefererManager createDatamapperRefererManagerImpl(DatamapperPersistenceStrategy strategy) {
+ return new JPARefererManager((JPAPersistenceStrategy) strategy);
}
/**
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAWeblogManagerImpl.java?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAWeblogManagerImpl.java (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/business/jpa/JPAWeblogManagerImpl.java Tue Dec 12 14:52:45 2006
@@ -374,8 +374,7 @@
else
results = (List) strategy.newQuery(
WeblogEntryTagAggregateData.class,
- "WeblogEntryTagAggregateData
- .getNameByNameIn&WebsiteNull")
+ "WeblogEntryTagAggregateData.getNameByNameIn&WebsiteNull")
.execute(tags);
} catch (RollerException re) {
throw new RuntimeException(re);
Modified: incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RefererData.orm.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RefererData.orm.xml?view=diff&rev=486394&r1=486393&r2=486394
==============================================================================
--- incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RefererData.orm.xml (original)
+++ incubator/roller/trunk/sandbox/jdobackend/src/org/apache/roller/pojos/RefererData.orm.xml Tue Dec 12 14:52:45 2006
@@ -51,15 +51,27 @@
</query>
</named-query>
<named-query name="RefererData.getDaysPopularWebsitesByWebsite.enabled&Website.active">
- <query>SELECT SUM(DISTICT r.dayHits), r.website.id, r.website.name, r.website.handle
+ <query>SELECT SUM(DISTINCT r.dayHits), r.website.id, r.website.name, r.website.handle
FROM RefererData r WHERE r.website.enabled = ?1 AND r.website.active = ?2
GROUP BY r.website.id, r.website.name, r.website.handle
</query>
</named-query>
<named-query name="RefererData.getHitsByWebsite.enabled&Website.id">
- <query>SELECT SUM(DISTICT r.dayHits), SUM(DISTINCT r.totalHits)
+ <query>SELECT SUM(DISTINCT r.dayHits), SUM(DISTINCT r.totalHits)
FROM RefererData r WHERE r.website.enabled = ?1 AND r.website.id = ?2
</query>
+ </named-query>
+ <named-query name="RefererData.clearDayHits">
+ <query>UPDATE RefererData r SET r.dayHits=0</query>
+ </named-query>
+ <named-query name="RefererData.clearDayHitsByWebsite">
+ <query>UPDATE RefererData r SET r.dayHits=0 where r.website = ?1</query>
+ </named-query>
+ <named-query name="RefererData.deleteByNullOrEmptyExcerpt">
+ <query>DELETE FROM RefererData r WHERE r.excerpt IS NULL OR r.excerpt LIKE ''</query>
+ </named-query>
+ <named-query name="RefererData.deleteByNullOrEmptyExcerpt&website">
+ <query>DELETE FROM RefererData r WHERE r.website = ?1 AND (r.excerpt IS NULL OR r.excerpt LIKE '')</query>
</named-query>
<attributes>
<id name="id">