1 15 16 package com.jdon.container.builder; 17 18 import java.util.Iterator ; 19 import java.util.Map ; 20 21 import org.aopalliance.intercept.MethodInterceptor; 22 23 import com.jdon.aop.interceptor.InterceptorsChain; 24 import com.jdon.bussinessproxy.TargetMetaDef; 25 import com.jdon.bussinessproxy.config.TargetMetaDefLoader; 26 import com.jdon.bussinessproxy.meta.POJOTargetMetaDef; 27 import com.jdon.container.ContainerWrapper; 28 import com.jdon.container.config.ComponentMetaDef; 29 import com.jdon.container.config.ContainerComponents; 30 import com.jdon.container.config.app.AppConfigureCollection; 31 import com.jdon.container.config.aspect.AspectComponentsMetaDef; 32 import com.jdon.container.finder.ComponentKeys; 33 import com.jdon.util.Debug; 34 35 36 43 public class DefaultContainerBuilder implements ContainerBuilder { 44 public final static String module = DefaultContainerBuilder.class.getName(); 45 46 private ContainerComponents basicComponents; 47 private ContainerComponents aspectConfigComponents; 48 private ContainerRegistry containerRegistry; 49 private ContainerWrapper containerWrapper; 50 private boolean startup; 51 52 58 public DefaultContainerBuilder(ContainerWrapper containerWrapper, 59 ContainerComponents basicComponents, 60 ContainerComponents aspectConfigComponents) { 61 this.basicComponents = basicComponents; 62 this.aspectConfigComponents = aspectConfigComponents; 63 this.containerRegistry = new ContainerRegistry(containerWrapper); 64 this.containerWrapper = containerWrapper; 65 66 } 67 68 69 public ContainerWrapper getContainerWrapper() { 70 return containerWrapper; 71 } 72 73 79 public void addAppConfigureFile(String configureFileName) throws Exception { 80 try{ 81 AppConfigureCollection existedAppConfigureFiles = (AppConfigureCollection) containerWrapper.lookup(AppConfigureCollection.NAME); 82 if (existedAppConfigureFiles == null){ 83 containerRegistry.registerAppConfigureFiles(); 84 existedAppConfigureFiles = (AppConfigureCollection) containerWrapper.lookup(AppConfigureCollection.NAME); 85 } 86 if (!existedAppConfigureFiles.getConfigList().contains(configureFileName)){ 87 Debug.logInfo("[JdonFramework]found jdonframework configuration=" + configureFileName, module); 88 existedAppConfigureFiles.addConfigList(configureFileName); 89 } 90 }catch(Exception ex){ 91 Debug.logError("[JdonFramework] addAppConfigureFiles error:" + ex, module); 92 throw new Exception (ex); 93 } 94 } 95 96 99 public void registerComponents() throws Exception { 100 Debug.logVerbose("[JdonFramework] note: registe all basic components in container.xml size=" + basicComponents.size(), module); 101 try{ 102 Iterator iter = basicComponents.iterator(); 103 while(iter.hasNext()){ 104 String name = (String )iter.next(); 105 ComponentMetaDef componentMetaDef = basicComponents.getComponentMetaDef(name); 106 containerRegistry.registerComponentMetaDef(componentMetaDef); 107 } 108 }catch(Exception ex){ 109 Debug.logError("[JdonFramework] register basiceComponents error:" + ex, module); 110 throw new Exception (ex); 111 } 112 113 } 114 115 118 public void registerAspectComponents() throws Exception { 119 Debug.logVerbose("[JdonFramework] note: registe aspect components ", module); 120 try{ 121 InterceptorsChain existedInterceptorsChain = (InterceptorsChain)containerWrapper.lookup(ComponentKeys.INTERCEPTOR_CHAIN); 122 123 Iterator iter = aspectConfigComponents.iterator(); 124 Debug.logVerbose("[JdonFramework] 3 aspectConfigComponents size:" + aspectConfigComponents.size(), module); 125 while(iter.hasNext()){ 126 String name = (String )iter.next(); 127 AspectComponentsMetaDef componentMetaDef = (AspectComponentsMetaDef)aspectConfigComponents.getComponentMetaDef(name); 128 containerRegistry.registerAspectComponentMetaDef(componentMetaDef); 130 MethodInterceptor interceptor = (MethodInterceptor)containerWrapper.lookup(name); 132 existedInterceptorsChain.addInterceptor(componentMetaDef.getPointcut(), interceptor); 134 } 135 }catch(Exception ex){ 136 Debug.logError("[JdonFramework] registerAspectComponents error:" + ex, module); 137 throw new Exception (ex); 138 } 139 140 } 141 142 145 public void registerUserService() throws Exception { 146 Debug.logVerbose("[JdonFramework] note: registe user pojoservice ", module); 147 try{ 148 TargetMetaDefLoader targetMetaDefLoader = (TargetMetaDefLoader)containerWrapper.lookup(ComponentKeys.SERVICE_METALOADER_NAME); 149 if (targetMetaDefLoader == null) return; 150 Map metaDefs = targetMetaDefLoader.getMetaDefs(); 151 Iterator iter = metaDefs.keySet().iterator(); 152 while (iter.hasNext()) { 153 String name = (String ) iter.next(); 154 TargetMetaDef tgm = (TargetMetaDef)metaDefs.get(name); 155 if (!tgm.isEJB()){ 156 containerRegistry.registerPOJOTargetMetaDef((POJOTargetMetaDef)tgm); 157 } 158 } 159 }catch(Exception ex){ 160 Debug.logError("[JdonFramework] registerUserService error:" + ex, module); 161 throw new Exception (ex); 162 } 163 } 164 165 public synchronized void setStartup(boolean startup) { 166 this.startup = startup; 167 } 168 169 public boolean isStartup() { 170 return startup; 171 } 172 173 } 174 | Popular Tags |