You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2009/02/17 16:41:29 UTC
svn commit: r745123 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-kernel/src/main/java/org/apache/openjpa/kernel/
openjpa-persistence/src/main/java/org/apache/openjpa/persistence/
Author: ppoddar
Date: Tue Feb 17 15:41:28 2009
New Revision: 745123
URL: http://svn.apache.org/viewvc?rev=745123&view=rev
Log:
OPENJPA-703: Use template for QueryStatistics.
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryCacheImpl.java Tue Feb 17 15:41:28 2009
@@ -57,7 +57,7 @@
// Key: Query identifier Value: Reason why excluded
private final Map<String, String> _uncachables;
private List<String> _exclusionPatterns;
- private final QueryStatistics _stats;
+ private final QueryStatistics<String> _stats;
private ReentrantLock _lock = new ReentrantLock();
private Log _log;
private Localizer _loc = Localizer.forPackage(PreparedQueryCacheImpl.class);
@@ -65,7 +65,7 @@
public PreparedQueryCacheImpl() {
_delegate = new HashMap<String, PreparedQuery>();
_uncachables = new HashMap<String, String>();
- _stats = new QueryStatistics.Default();
+ _stats = new QueryStatistics.Default<String>();
}
public Boolean register(String id, Query query, FetchConfiguration hints) {
@@ -264,7 +264,7 @@
}
}
- public QueryStatistics getStatistics() {
+ public QueryStatistics<String> getStatistics() {
return _stats;
}
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/PreparedQueryCache.java Tue Feb 17 15:41:28 2009
@@ -188,5 +188,5 @@
/**
* Gets the simple statistics for executed queries.
*/
- public QueryStatistics getStatistics();
+ public QueryStatistics<String> getStatistics();
}
\ No newline at end of file
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java Tue Feb 17 15:41:28 2009
@@ -37,13 +37,13 @@
* @author Pinaki Poddar
*
*/
-public interface QueryStatistics extends Serializable {
+public interface QueryStatistics<T> extends Serializable {
/**
* Record that the given query has been executed. The boolean parameter
* designates whether the executed query is a cached version.
*/
- void recordExecution(String query, boolean cached);
+ void recordExecution(T query, boolean cached);
/**
* Gets number of total query execution since last reset.
@@ -58,12 +58,12 @@
/**
* Gets number of executions for the given query since last reset.
*/
- public long getExecutionCount(String query);
+ public long getExecutionCount(T query);
/**
* Gets number of executions for the given query since start.
*/
- public long getTotalExecutionCount(String query);
+ public long getTotalExecutionCount(T query);
/**
* Gets number of total query execution that are cached since last reset.
@@ -79,13 +79,13 @@
* Gets number of executions for the given query that are cached since
* last reset.
*/
- public long getHitCount(String query);
+ public long getHitCount(T query);
/**
* Gets number of executions for the given query that are cached since
* start.
*/
- public long getTotalHitCount(String query);
+ public long getTotalHitCount(T query);
/**
* Gets the time of last reset.
@@ -111,12 +111,12 @@
* A default implementation.
*
*/
- public static class Default implements QueryStatistics {
+ public static class Default<T> implements QueryStatistics<T> {
private static final int ARRAY_SIZE = 2;
private long[] astat = new long[ARRAY_SIZE];
private long[] stat = new long[ARRAY_SIZE];
- private Map<String, long[]> stats = new HashMap<String, long[]>();
- private Map<String, long[]> astats = new HashMap<String, long[]>();
+ private Map<T, long[]> stats = new HashMap<T, long[]>();
+ private Map<T, long[]> astats = new HashMap<T, long[]>();
private Date start = new Date();
private Date since = start;
@@ -131,11 +131,11 @@
return astat[READ];
}
- public long getExecutionCount(String query) {
+ public long getExecutionCount(T query) {
return getCount(stats, query, READ);
}
- public long getTotalExecutionCount(String query) {
+ public long getTotalExecutionCount(T query) {
return getCount(astats, query, READ);
}
@@ -147,15 +147,15 @@
return astat[HIT];
}
- public long getHitCount(String query) {
+ public long getHitCount(T query) {
return getCount(stats, query, HIT);
}
- public long getTotalHitCount(String query) {
+ public long getTotalHitCount(T query) {
return getCount(astats, query, HIT);
}
- private long getCount(Map<String, long[]> target, String query, int i) {
+ private long getCount(Map<T, long[]> target, T query, int i) {
long[] row = target.get(query);
return (row == null) ? 0 : row[i];
}
@@ -174,14 +174,14 @@
since = new Date();
}
- private void addSample(String query, int index) {
+ private void addSample(T query, int index) {
stat[index]++;
astat[index]++;
addSample(stats, query, index);
addSample(astats, query, index);
}
- private void addSample(Map<String, long[]> target, String query, int i) {
+ private void addSample(Map<T, long[]> target, T query, int i) {
long[] row = target.get(query);
if (row == null) {
row = new long[ARRAY_SIZE];
@@ -190,7 +190,7 @@
target.put(query, row);
}
- public void recordExecution(String query, boolean cached) {
+ public void recordExecution(T query, boolean cached) {
addSample(query, READ);
if (cached)
addSample(query, HIT);
@@ -210,7 +210,7 @@
out.println("\tSince Start \tSince Reset \t\tQuery");
}
int i = 0;
- for (String key : stats.keySet()) {
+ for (T key : stats.keySet()) {
i++;
long[] arow = astats.get(key);
if (since == start) {
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java?rev=745123&r1=745122&r2=745123&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java Tue Feb 17 15:41:28 2009
@@ -587,7 +587,7 @@
Boolean registered = cache.register(_id, _query, fetch);
boolean alreadyCached = (registered == null);
String lang = _query.getLanguage();
- QueryStatistics stats = cache.getStatistics();
+ QueryStatistics<String> stats = cache.getStatistics();
if (alreadyCached && LANG_PREPARED_SQL.equals(lang)) {
PreparedQuery pq = _em.getPreparedQuery(_id);
if (pq.isInitialized()) {