Package com.alibaba.citrus.service.moduleloader

Examples of com.alibaba.citrus.service.moduleloader.ModuleLoaderService


            } else {
                throw new IllegalArgumentException("Neither template nor module name was specified to render a control");
            }

            // controlTool支持跨component调用,现在取得指定component下的service。
            ModuleLoaderService moduleLoaderService = getService("moduleLoaderService", componentName,
                                                                 this.moduleLoaderService, ModuleLoaderService.class);

            MappingRuleService mappingRuleService = getService("mappingRuleService", componentName,
                                                               this.mappingRuleService, MappingRuleService.class);

            TemplateService templateService = getService("templateService", componentName, this.templateService,
                                                         TemplateService.class);

            // 取得实际的template/module名称
            String templateName = null;
            String moduleName = null;

            if (isTemplate) {
                templateName = target;
                moduleName = mappingRuleService.getMappedName(CONTROL_MODULE, target);
            } else {
                moduleName = mappingRuleService.getMappedName(CONTROL_MODULE_NO_TEMPLATE, target);
            }

            // 执行control module
            Module controlModule;

            if (templateName == null) {
                // templateName未指定时,必须有module,如没有则抛出ModuleNotFoundException
                controlModule = moduleLoaderService.getModule(CONTROL_MODULE, moduleName);
            } else {
                // 当指定了templateName时,可以没有的control module,而单单渲染模板。
                // 这样就实现了page-driven,即先写模板,必要时再写一个module class与之对应。
                controlModule = moduleLoaderService.getModuleQuiet(CONTROL_MODULE, moduleName);
            }

            if (log.isTraceEnabled()) {
                if (templateName != null) {
                    log.trace("Rendering control: template=" + templateName + ", control=" + moduleName);
View Full Code Here


            } else {
                throw new IllegalArgumentException("Neither template nor module name was specified to render a control");
            }

            // controlTool֧�ֿ�component���ã�����ȡ��ָ��component�µ�service��
            ModuleLoaderService moduleLoaderService = getService("moduleLoaderService", componentName,
                    this.moduleLoaderService, ModuleLoaderService.class);

            MappingRuleService mappingRuleService = getService("mappingRuleService", componentName,
                    this.mappingRuleService, MappingRuleService.class);

            TemplateService templateService = getService("templateService", componentName, this.templateService,
                    TemplateService.class);

            // ȡ��ʵ�ʵ�template/module����
            String templateName = null;
            String moduleName = null;

            if (isTemplate) {
                templateName = target;
                moduleName = mappingRuleService.getMappedName(CONTROL_MODULE, target);
            } else {
                moduleName = mappingRuleService.getMappedName(CONTROL_MODULE_NO_TEMPLATE, target);
            }

            // ִ��control module
            Module controlModule;

            if (templateName == null) {
                // templateNameδָ��ʱ��������module����û�����׳�ModuleNotFoundException
                controlModule = moduleLoaderService.getModule(CONTROL_MODULE, moduleName);
            } else {
                // ��ָ����templateNameʱ������û�е�control module����������Ⱦģ�塣
                // ������ʵ����page-driven������дģ�壬��Ҫʱ��дһ��module class��֮��Ӧ��
                controlModule = moduleLoaderService.getModuleQuiet(CONTROL_MODULE, moduleName);
            }

            if (log.isTraceEnabled()) {
                if (templateName != null) {
                    log.trace("Rendering control: template=" + templateName + ", control=" + moduleName);
View Full Code Here

TOP

Related Classes of com.alibaba.citrus.service.moduleloader.ModuleLoaderService

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.