Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Core
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14558/Core
Modified Files:
ServiceDomainPlatformTransactionManager.cs
Log Message:
SPRNET-773 - Unit tests for ServiceDomainTransactionManager
(refactorings to support)
Index: ServiceDomainPlatformTransactionManager.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Data/Data/Core/ServiceDomainPlatformTransactionManager.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ServiceDomainPlatformTransactionManager.cs 1 Dec 2007 20:18:09 -0000 1.3
--- ServiceDomainPlatformTransactionManager.cs 4 Dec 2007 08:16:42 -0000 1.4
***************
*** 44,47 ****
--- 44,53 ----
public class ServiceDomainPlatformTransactionManager : AbstractPlatformTransactionManager, IInitializingObject
{
+ private IServiceDomainAdapter txAdapter;
+
+ private bool trackingEnabled = true;
+ private string trackingAppName = "Spring.NET";
+ private string trackingComponentName = "ServiceDomainPlatformTransactionManager";
+
#region Constructor (s)
/// <summary>
***************
*** 53,58 ****
--- 59,107 ----
}
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ServiceDomainPlatformTransactionManager"/> class.
+ /// </summary>
+ /// <remarks>This is indented only for unit testing purposes and should not be
+ /// called by production application code.</remarks>
+ /// <param name="txAdapter">The tx adapter.</param>
+ public ServiceDomainPlatformTransactionManager(IServiceDomainAdapter txAdapter)
+ {
+ this.txAdapter = txAdapter;
+ }
+
#endregion
+
+ /// <summary>
+ /// Gets or sets a value indicating whether tracking is enabled.
+ /// </summary>
+ /// <value><c>true</c> if tracking is enabled; otherwise, <c>false</c>.</value>
+ public bool TrackingEnabled
+ {
+ get { return trackingEnabled; }
+ set { trackingEnabled = value; }
+ }
+
+ /// <summary>
+ /// Gets or sets a text string that corresponds to the application ID under which tracker information is reported.
+ /// The default value is 'Spring.NET'
+ /// </summary>
+ /// <value>The name of the tracking app.</value>
+ public string TrackingAppName
+ {
+ get { return trackingAppName; }
+ set { trackingAppName = value; }
+ }
+
+ /// <summary>
+ /// Gets or sets a text string that corresponds to the context name under which tracker information is reported.
+ /// </summary>
+ /// <value>The name of the tracking component.</value>
+ public string TrackingComponentName
+ {
+ get { return trackingComponentName; }
+ set { trackingComponentName = value; }
+ }
+
public void AfterPropertiesSet()
{
***************
*** 100,104 ****
private void DoServiceDomainBegin(ServiceDomainTransactionObject serviceDomainTxObject, ITransactionDefinition definition)
{
! ServiceConfig serviceConfig = CreateServiceConfig(definition);
//The context is created when we call Enter.
serviceDomainTxObject.ServiceDomainAdapter.Enter(serviceConfig);
--- 149,158 ----
private void DoServiceDomainBegin(ServiceDomainTransactionObject serviceDomainTxObject, ITransactionDefinition definition)
{
! SimpleServiceConfig serviceConfig = CreateServiceConfig(definition);
!
! if (txAdapter != null)
! {
! serviceDomainTxObject.ServiceDomainAdapter = txAdapter;
! }
//The context is created when we call Enter.
serviceDomainTxObject.ServiceDomainAdapter.Enter(serviceConfig);
***************
*** 123,137 ****
}
! private ServiceConfig CreateServiceConfig(ITransactionDefinition definition)
{
! ServiceConfig serviceConfig = new ServiceConfig();
//TODO investigate BringYourOwnTransaction and TipUrl properties of ServiceConfig
serviceConfig.TransactionDescription = definition.Name;
! //TODO expose these as configuration options?
! serviceConfig.TrackingEnabled = true;
! serviceConfig.TrackingAppName = "Spring.NET";
! serviceConfig.TrackingComponentName = "ServiceDomainPlatformTransactionManager";
ApplyPropagationBehavior(serviceConfig, definition);
--- 177,190 ----
}
! private SimpleServiceConfig CreateServiceConfig(ITransactionDefinition definition)
{
! SimpleServiceConfig serviceConfig = new SimpleServiceConfig();
//TODO investigate BringYourOwnTransaction and TipUrl properties of ServiceConfig
serviceConfig.TransactionDescription = definition.Name;
! serviceConfig.TrackingEnabled = TrackingEnabled;
! serviceConfig.TrackingAppName = TrackingAppName;
! serviceConfig.TrackingComponentName = TrackingComponentName;
ApplyPropagationBehavior(serviceConfig, definition);
***************
*** 147,151 ****
}
! protected void ApplyIsolationLevel(ServiceConfig serviceConfig, ITransactionDefinition definition)
{
switch (definition.TransactionIsolationLevel)
--- 200,204 ----
}
! protected void ApplyIsolationLevel(SimpleServiceConfig serviceConfig, ITransactionDefinition definition)
{
switch (definition.TransactionIsolationLevel)
***************
*** 187,212 ****
}
! protected void ApplyPropagationBehavior(ServiceConfig serviceConfig, ITransactionDefinition definition)
{
if (definition.PropagationBehavior == TransactionPropagation.Required)
{
! serviceConfig.Transaction = TransactionOption.Required;
}
else if (definition.PropagationBehavior == TransactionPropagation.RequiresNew)
{
! serviceConfig.Transaction = TransactionOption.RequiresNew;
}
else if (definition.PropagationBehavior == TransactionPropagation.Supports)
{
! serviceConfig.Transaction = TransactionOption.Supported;
}
else if (definition.PropagationBehavior == TransactionPropagation.NotSupported)
{
! serviceConfig.Transaction = TransactionOption.NotSupported;
}
else if (definition.PropagationBehavior == TransactionPropagation.Never)
{
//TODO check the validity of this mapping
! serviceConfig.Transaction = TransactionOption.Disabled;
} else
{
--- 240,265 ----
}
! protected void ApplyPropagationBehavior(SimpleServiceConfig serviceConfig, ITransactionDefinition definition)
{
if (definition.PropagationBehavior == TransactionPropagation.Required)
{
! serviceConfig.TransactionOption = TransactionOption.Required;
}
else if (definition.PropagationBehavior == TransactionPropagation.RequiresNew)
{
! serviceConfig.TransactionOption = TransactionOption.RequiresNew;
}
else if (definition.PropagationBehavior == TransactionPropagation.Supports)
{
! serviceConfig.TransactionOption = TransactionOption.Supported;
}
else if (definition.PropagationBehavior == TransactionPropagation.NotSupported)
{
! serviceConfig.TransactionOption = TransactionOption.NotSupported;
}
else if (definition.PropagationBehavior == TransactionPropagation.Never)
{
//TODO check the validity of this mapping
! serviceConfig.TransactionOption = TransactionOption.Disabled;
} else
{
***************
*** 329,333 ****
get
{
! if ( ContextUtil.MyTransactionVote == TransactionVote.Abort)
{
return true;
--- 382,386 ----
get
{
! if ( serviceDomainAdapter.MyTransactionVote == TransactionVote.Abort)
{
return true;
|