1 16 package com.jdon.container.factory; 17 18 import javax.servlet.ServletContext ; 19 20 import com.jdon.container.ContainerWrapper; 21 import com.jdon.container.builder.ContainerBuilder; 22 import com.jdon.container.builder.DefaultContainerBuilder; 23 import com.jdon.container.config.ContainerComponents; 24 import com.jdon.util.Debug; 25 26 33 public class ContainerBuilderFactory { 34 public final static String module = ContainerBuilderFactory.class.getName(); 35 36 private static final String DEFAULT_CONTAINER_CONFIGURE_FILENAME = "container.xml"; 37 private static final String DEFAULT_ASPECT_CONFIGURE_FILENAME = "aspect.xml"; 38 39 private static final String USER_CONTAINER_CONFIGURE_FILENAME = "mycontainer.xml"; 40 private static final String USER_ASPECT_CONFIGURE_FILENAME = "myaspect.xml"; 41 42 43 private static final String CONTAINER_CONFIG_PARAM = "containerConfigure"; 44 private static final String ASPECT_CONFIG_PARAM = "aspectConfigure"; 45 46 56 public ContainerBuilder createContainerBuilder(ServletContext context){ 57 ContainerFactory containerFactory = new ContainerFactory(); 58 ContainerComponents configComponents = fetchContainerConfig(context); 59 ContainerComponents aspectConfigComponents = fecthAspectConfig(context); 60 61 ContainerWrapper cw = containerFactory.create(); 62 return new DefaultContainerBuilder(cw, configComponents, aspectConfigComponents); 63 } 64 65 70 private ContainerComponents fetchContainerConfig(ServletContext context){ 71 ContainerFactory containerFactory = new ContainerFactory(); 72 Debug.logVerbose("[JdonFramework] 1. read container components from:" + DEFAULT_CONTAINER_CONFIGURE_FILENAME, module); 73 ContainerComponents configComponents = containerFactory.fetchBasicComponents(DEFAULT_CONTAINER_CONFIGURE_FILENAME); 74 String container_configFile = context.getInitParameter(CONTAINER_CONFIG_PARAM); 76 if (container_configFile != null){ 77 Debug.logVerbose("[JdonFramework] 2. read container components from:" + container_configFile, module); 78 ContainerComponents appconfigComponents = containerFactory.fetchBasicComponents(container_configFile); 79 configComponents.addComponents(appconfigComponents.getComponents()); 80 } 81 82 Debug.logVerbose("[JdonFramework] 3. read container components from:" + USER_CONTAINER_CONFIGURE_FILENAME, module); 84 ContainerComponents userconfigComponents = containerFactory.fetchBasicComponents(USER_CONTAINER_CONFIGURE_FILENAME); 85 configComponents.addComponents(userconfigComponents.getComponents()); 86 87 return configComponents; 88 } 89 90 95 private ContainerComponents fecthAspectConfig(ServletContext context){ 96 ContainerFactory containerFactory = new ContainerFactory(); 97 98 Debug.logVerbose("[JdonFramework]1. read apspect interceptors from:" + USER_ASPECT_CONFIGURE_FILENAME, module); 100 ContainerComponents aspectConfigComponents = containerFactory.fetchAspectComponents(USER_ASPECT_CONFIGURE_FILENAME); 101 102 String aspect_configFile = context.getInitParameter(ASPECT_CONFIG_PARAM); 103 if (aspect_configFile != null){ 104 Debug.logVerbose("[JdonFramework]2. read apspect interceptors from:" + aspect_configFile, module); 105 ContainerComponents appaspectConfigComponents2 = containerFactory.fetchAspectComponents(aspect_configFile); 106 aspectConfigComponents.addComponents(appaspectConfigComponents2.getComponents()); 107 } 108 109 Debug.logVerbose("[JdonFramework] 3. read apspect interceptors from:" + DEFAULT_ASPECT_CONFIGURE_FILENAME, module); 110 ContainerComponents aspectConfigComponents3 =containerFactory.fetchAspectComponents(DEFAULT_ASPECT_CONFIGURE_FILENAME); 111 aspectConfigComponents.addComponents(aspectConfigComponents3.getComponents()); 112 113 114 Debug.logVerbose("[JdonFramework] aspectConfigComponents size:" + aspectConfigComponents.size(), module); 115 return aspectConfigComponents; 116 117 } 118 119 public ContainerBuilder createContainerBuilder(String container_configFile, String aspect_configFile){ 120 ContainerFactory containerFactory = new ContainerFactory(); 121 ContainerWrapper cw = containerFactory.create(); 122 123 ContainerComponents configComponents = containerFactory.fetchBasicComponents(container_configFile); 124 ContainerComponents aspectConfigComponents = containerFactory.fetchAspectComponents(aspect_configFile); 125 126 return new DefaultContainerBuilder(cw, configComponents, aspectConfigComponents); 127 } 128 129 } 130 | Popular Tags |