/// <summary> /// ProcessRouteInformation Now. /// </summary> /// <param name="route"></param> /// <param name="autoExec"></param> /// <param name="logProvider"></param> /// <param name="bundleDescriptorObject"></param> public static void ProcessRouteInformation(XElement route, bool autoExec = false, ISystemLogProvider logProvider = null, BundleDescriptorObject bundleDescriptorObject = null) { if (route == null) throw new AppCoreException("error loading route-config: route cannot be null"); var xmlRouteDesc = route.Attribute("description"); var routeDesc = xmlRouteDesc != null ? xmlRouteDesc.Value : ""; var steps = route.Elements(); var newRoute = new Route { LogProvider = logProvider, Description = routeDesc, BundleInfo = bundleDescriptorObject }; RouteStep nextRouteStepProcessorToLink = null; foreach (var step in steps) { if (newRoute.CurrentRouteStep == null) { newRoute.CurrentRouteStep = new RouteStep(step, newRoute); nextRouteStepProcessorToLink = newRoute.CurrentRouteStep; } else { var nextStep = new RouteStep(step, newRoute); if (nextRouteStepProcessorToLink == null) continue; nextRouteStepProcessorToLink.NextTag = nextStep; nextRouteStepProcessorToLink = nextRouteStepProcessorToLink.NextTag; } } Camel.SetRoute(newRoute); if (autoExec) newRoute.CurrentRouteStep.ProcessChannel(); }
public static BundleDescriptorObject Init(string data) { var obj = new BundleDescriptorObject(); var xmlData = XElement.Parse(data); obj.Name = XmlHelper.GetValue<string>(xmlData, "name"); obj.ModelVersion = XmlHelper.GetValue<string>(xmlData, "version"); obj.Author = XmlHelper.GetValue(xmlData, "author", "default.author"); obj.GroupId = XmlHelper.GetValue(xmlData, "groupid", "com.nerve.group"); obj.Priority = XmlHelper.GetValue(xmlData, "priority", "low"); obj.GuidData = Guid.NewGuid().ToString(); obj.BundleStatus = Status.Active; return obj; }