Author: rgrabowski
Date: Sun Sep 18 12:24:20 2005
New Revision: 289957
URL: http://svn.apache.org/viewcvs?rev=289957&view=rev
Log:
Fix for IBATISNET-133. Moved GetDataCacheHitRatio method into CachingStatement
class. Checked for MappedStatement vs CachingStatement in SqlMapper's
GetDataCacheStats method.
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
Sun Sep 18 12:24:20 2005
@@ -3,6 +3,7 @@
using System.Collections;
using IBatisNet.Common;
using IBatisNet.Common.Exceptions;
+using IBatisNet.Common.Utilities;
using IBatisNet.DataMapper.MappedStatements;
using IBatisNet.DataMapper.Test.Domain;
using NUnit.Framework;
@@ -30,7 +31,6 @@
InitScript(sqlMap.DataSource, ScriptDirectory +
"other-init.sql");
}
-
/// <summary>
/// TearDown
/// </summary>
@@ -1166,6 +1166,27 @@
Assert.AreEqual(5, list.Count);
}
+ /// <summary>
+ /// Test for cache stats only being calculated on
CachingStatments
+ /// </summary>
+ [Test]
+ public void TestJIRA113()
+ {
+ sqlMap.FlushCaches();
+
+ // taken from TestFlushDataCache()
+ // first query is not cached, second query is: 50%
cache hit
+ IList list =
sqlMap.QueryForList("GetCachedAccountsViaResultMap", null);
+ int firstId =
HashCodeProvider.GetIdentityHashCode(list);
+ list =
sqlMap.QueryForList("GetCachedAccountsViaResultMap", null);
+ int secondId =
HashCodeProvider.GetIdentityHashCode(list);
+ Assert.AreEqual(firstId, secondId);
+
+ string cacheStates = sqlMap.GetDataCacheStats();
+
+ Assert.IsNotNull(cacheStates);
+ }
+
#endregion
#region CustomTypeHandler tests
@@ -1222,8 +1243,5 @@
Assert.AreEqual(false, anOther.Bool2);
}
#endregion
-
-
-
}
}
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs
Sun Sep 18 12:24:20 2005
@@ -58,6 +58,22 @@
_mappedStatement = statement;
}
+ /// <summary>
+ /// Gets a percentage of successful cache hits achieved
+ /// </summary>
+ /// <returns>The percentage of hits (0-1), or -1 if cache is
disabled.</returns>
+ public double GetDataCacheHitRatio()
+ {
+ if (_mappedStatement.Statement.CacheModel != null)
+ {
+ return
_mappedStatement.Statement.CacheModel.HitRatio;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
#region IMappedStatement Members
/// <summary>
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
Sun Sep 18 12:24:20 2005
@@ -207,23 +207,6 @@
#region Methods
/// <summary>
- /// Gets a percentage of successful cache hits achieved
- /// </summary>
- /// <returns>The percentage of hits (0-1), or -1 if cache is
disabled.</returns>
- public double GetDataCacheHitRatio()
- {
- if (_statement.CacheModel != null)
- {
- return _statement.CacheModel.HitRatio;
- }
- else
- {
- return -1;
- }
- }
-
-
- /// <summary>
///
/// </summary>
/// <param name="request"></param>
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=289957&r1=289956&r2=289957&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Sun Sep 18
12:24:20 2005
@@ -1332,26 +1332,42 @@
/// <returns></returns>
public string GetDataCacheStats()
{
- StringBuilder buffer = new StringBuilder("\nCache Data
Statistiques");
- buffer.Append("\n=======================\n");
+ StringBuilder buffer = new StringBuilder();
+ buffer.Append(Environment.NewLine);
+ buffer.Append("Cache Data Statistics");
+ buffer.Append(Environment.NewLine);
+ buffer.Append("=====================");
+ buffer.Append(Environment.NewLine);
+
IDictionaryEnumerator enumerator =
_mappedStatements.GetEnumerator();
while (enumerator.MoveNext())
{
- MappedStatement statement = (MappedStatement)
enumerator.Value;
- buffer.Append(statement.Name);
+ IMappedStatement mappedStatement =
(IMappedStatement)enumerator.Value;
+
+ buffer.Append(mappedStatement.Name);
buffer.Append(": ");
- double hitRatio =
statement.GetDataCacheHitRatio();
- if (hitRatio != -1)
+
+ if (mappedStatement is CachingStatement)
{
- buffer.Append(Math.Round(hitRatio *
100));
- buffer.Append("%");
- }
- else
+ double hitRatio =
((CachingStatement)mappedStatement).GetDataCacheHitRatio();
+ if (hitRatio != -1)
+ {
+
buffer.Append(Math.Round(hitRatio * 100));
+ buffer.Append("%");
+ }
+ else
+ {
+ buffer.Append("No Cache.");
+ }
+ }
+ else
{
buffer.Append("No Cache.");
}
- buffer.Append("\n");
+
+ buffer.Append(Environment.NewLine);
}
+
return buffer.ToString();
}