/// <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;
        }