Ok, I put up a very simple example app. No example db, but all it has to do is connect to something with select privs (it just does select 1). It's very basic, and I didn't clean the code all that much. Just wanted to get it out there. Again, this was a quick and dirty fix for what I needed, it definitely has room for much improvement, which is what I'm looking for comments on :)
URL is: http://www.blackdood.com/code/ibatisnet/IBatisSpringExample.zip -Jerome On 1/8/07, Jerome Gagner <[EMAIL PROTECTED]> wrote:
Oh, then you might like this little class ted: /* * Created by: Jerome Gagner * Created: Thursday, December 21, 2006 */ using System; using System.Reflection; using NLog; using Spring.Context ; using Spring.Transaction; using Spring.Transaction.Support; using NUnit.Framework; //Load log4net stuff namespace Test.TestFramework { public abstract class AbstractTransactionalTestCase { private static Logger log = LogManager.GetCurrentClassLogger(); /// <summary> /// Method for being able to return the application context. /// </summary> /// <returns></returns> public abstract IApplicationContext getApplicationContext(); //Should do what I think it does [ThreadStatic] private static ITransactionStatus status = null; [SetUp] public void setUp() { log.Debug("Setting up.." ); //Set up the test case with spring injected dependencies Type parent = GetType(); PropertyInfo[] props = parent.GetProperties(); foreach (PropertyInfo prop in props) { if (prop.CanWrite) { object val = getApplicationContext().GetObject( prop.Name); prop.SetValue(this, val, null); } } log.Debug("Starting a transaction..."); //Start a transaction IPlatformTransactionManager txManager = (IPlatformTransactionManager) getApplicationContext().GetObject("transactionManager"); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.PropagationBehavior = TransactionPropagation.RequiresNew; status = txManager.GetTransaction(def); } [TearDown] public void tearDown() { log.Debug("Tearing down"); log.Debug("Rolling back transaction after test execution..."); IPlatformTransactionManager txManager = (IPlatformTransactionManager) getApplicationContext().GetObject("transactionManager"); txManager.Rollback(status); } } } On 1/8/07, Ted Husted <[EMAIL PROTECTED]> wrote: > > We use Spring.NET at work, so I would be interesting in what you are > doing. > > -Ted. > > On 1/8/07, Jerome Gagner <[EMAIL PROTECTED]> wrote: > > I need to clean up the code a bit, it was a quick and dirty > implementation > > but I think the community could benefit a bit from it. I'll try and > post it > > tonight. > > > > > > On 1/8/07, Ron Grabowski <[EMAIL PROTECTED] > wrote: > > > Post the code to a JIRA ticket or on a website somewhere. In case > you're > > curious, here's how IBatisNet integrates with Castle's IoC container: > > > > > > > > > > > > > > http://svn.castleproject.org:8080/svn/castle/trunk/Facilities/IBatisNet/Castle.Facilities.IBatisNetIntegration/ > > > > > > > > > > > > > ----- Original Message ---- > > > > > > From: Jerome Gagner < [EMAIL PROTECTED]> > > > > > > To: dev@ibatis.apache.org > > > > > > Sent: Monday, January 8, 2007 1:46:02 AM > > > > > > Subject: Spring .NET Integration for iBatis .NET > > > > > > Hello All, > > > > > > I recently implemented functionality similar to the Spring/iBatis > Java > > integration (SqlMapClient and SqlMapClientTemplate) with Spring .NET > and > > iBatis .NET. I have also gotten permission to release this back. I'm > > probably going to submit to Spring .NET but I was interested if anyone > on > > the iBatis side would be willing to review and give pointers before > doing > > so? >