Summary description for XmlEngineBuilder.
Inheritance: AspectLanguageEngineBuilder
		private void RegisterAspectEngine()
		{
			AspectEngineBuilder builder = null;

			// see if we have an xml config
			foreach(IConfiguration child in FacilityConfig.Children)
			{
				if("configuration".Equals(child.Name))
				{
					string config = ConfigurationToXml(child);
					builder = new XmlEngineBuilder(config);
				}
			}

			// else we try to use the language engine 
			if(builder == null)
			{
				builder = new AspectLanguageEngineBuilder(FacilityConfig.Value);
			}

			ComponentModel model = 
				new ComponentModel("aspectsharp.engine", 
					typeof(AspectEngine), typeof(AspectEngine));
			
			model.ExtendedProperties.Add("builder", builder);
			model.CustomComponentActivator = typeof(AspectEngineActivator);

			Kernel.AddCustomComponent( model );
		}
		public void BuildUsingXmlWithLanguageInCData()
		{
			String xmlContents = "<configuration>" + 
				" <![CDATA[" +
				" import AspectSharp.Tests.Classes in AspectSharp.Tests " + 
				" interceptors [" + 
				" \"key\" : DummyInterceptor " + 
				" ]" + 
				" mixins [" + 
				" \"key\" : DummyMixin " + 
				" ]" + 
				" " + 
				" aspect McBrother for DummyCustomer " + 
				"   include \"key\"" + 
				"   " + 
				"   pointcut method(*)" + 
				"     advice(\"key\")" + 
				"   end" + 
				"   " + 
				" end " +
				" ]]>" +
				"</configuration>";
			XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents);
			AspectEngine engine = builder.Build();
			AssertEngineConfiguration(engine);
		}
		public void XmlWithMoreComplexMethodSignature()
		{
			String xmlContents = "<configuration>" + 
				"<import namespace=\"AspectSharp.Tests.Classes\" assembly=\"AspectSharp.Tests\" />" + 
				"<mixins>" + 
				"<mixin key=\"key\" type=\"DummyMixin\" refTypeEnum=\"Type\" />" +
				"</mixins><interceptors>" +
				"<interceptor key=\"key\" type=\"DummyInterceptor\" refTypeEnum=\"Type\" />" +
				"</interceptors>" +
				"<aspect name=\"McBrother\"><for>" +
				"<singletype type=\"DummyCustomer\" refTypeEnum=\"Type\" />" +
				"</for>" +
				"<mixin type=\"key\" refTypeEnum=\"Link\" />" +
				"<pointcut symbol=\"Method\"><signature>(void Name(*))</signature>" +
				"<interceptor type=\"key\" refTypeEnum=\"Link\" />" +
				"</pointcut>" +
				"</aspect>" +
				"</configuration>";
			XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents);
			AspectEngine engine = builder.Build();

			Assert.IsNotNull(engine);
			Assert.IsNotNull(engine.Configuration);

			AspectDefinition aspect = engine.Configuration.Aspects[0];
			Assert.AreEqual(1, aspect.Mixins.Count);

			PointCutDefinition pointcut = aspect.PointCuts[0];
			Assert.IsTrue( pointcut.Method.AllArguments );
			Assert.AreEqual( "void", pointcut.Method.RetType );
			Assert.AreEqual("Name", pointcut.Method.MethodName );

			Assert.AreEqual(1, pointcut.Advices.Count);
			InterceptorDefinition advice = pointcut.Advices[0];
			Assert.AreEqual( typeof(DummyInterceptor), advice.TypeReference.ResolvedType );
		}
		public void BuildUsingXml()
		{
			String xmlContents = "<configuration>" + 
				"<import namespace=\"AspectSharp.Tests.Classes\" assembly=\"AspectSharp.Tests\" />" + 
				"<mixins>" + 
				"<mixin key=\"key\" type=\"DummyMixin\" refTypeEnum=\"Type\" />" +
				"</mixins><interceptors>" +
				"<interceptor key=\"key\" type=\"DummyInterceptor\" refTypeEnum=\"Type\" />" +
				"</interceptors>" +
				"<aspect name=\"McBrother\"><for>" +
				"<singletype type=\"DummyCustomer\" refTypeEnum=\"Type\" />" +
				"</for>" +
				"<mixin type=\"key\" refTypeEnum=\"Link\" />" +
				"<pointcut symbol=\"Method\"><signature>(*)</signature>" +
				"<interceptor type=\"key\" refTypeEnum=\"Link\" />" +
				"</pointcut>" +
				"</aspect>" +
				"</configuration>";
			XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents);
			AspectEngine engine = builder.Build();
			AssertEngineConfiguration(engine);
		}