@Override public DataFactory createDataFactory(Dmo dmo) { return beanFactory.inject(new DefaultDataFactory(dmo)); }
@Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if(null != Global.factory()) { if(!bean.getClass().getName().startsWith(Global.SPRING_PACKAGE_PREFIX)) { Global.factory().inject(bean); } } return bean; }
@Override public void registerBeans(AppConfig config, BeanFactory factory) { factory.setPrimaryBean(AppConfig.class, config); for(Map.Entry<Class<?>, Object> extension : config.getExtensions().entrySet()) { Class<?> type = extension.getKey(); Object inst = extension.getValue(); if(inst instanceof ConfigBean) { factory.setPrimaryBean(type, factory.inject(inst)); } } }
@Override public <T> T inject(T bean) throws BeanException { Args.notNull(bean,"bean"); if(null != externalFactory){ externalFactory.inject(bean); } this.beanContainer.inject(bean); return bean; }
@Override public Api newDynamic(String name, String basePath) { DefaultApiConfig c = factory.inject(new DefaultApiConfig(name,basePath,DefaultApis.class)); return doNewApi(c, true); }
@Init private void init() { entityConverter = beanFactory.inject(new MetaEntityConverter()); }
@Override public void loadClasses(OrmContext context, Class<?>... classes) throws MetadataException { doLoad(context, (lc) -> { beanFactory.inject(new ClassMapper()).loadMappings(lc, classes); }); }
@Override public ApiConfigurator add(String name, String basePath) throws ObjectExistsException { Args.notEmpty(name, "name"); Args.notEmpty(basePath, "basePath"); DefaultApiConfig c = factory.inject(new DefaultApiConfig(name,basePath,DefaultApis.class)); doAdd(c); return c; }
@Override public void postCreate(BeanFactory beanFactory) throws Exception { _readonly.check().enable(); if(null == metadata){ OrmMetadataManager mm = beanFactory.getBean(OrmMetadataManager.class); metadata = mm.createMetadata(); mm.loadMetadata(this); } if(null == dao) { dao = new WrappedDao(beanFactory.inject(new DefaultDao(this))); beanFactory.addBean(Dao.class, dao, name, primary); } if(null == dmo) { dmo = beanFactory.inject(new DefaultDmo(this)); beanFactory.addBean(Dmo.class, dmo, name, primary); } for(OrmContextInitializable init : beanFactory.getBeans(OrmContextInitializable.class)){ init.postInitialize(this); } }
public DynaOrmContext createDynaContext(String name, Db db) { if(Strings.isEmpty(name)) { name = UNNAMED; } final OrmMetadata md = omm.createMetadata(); DefaultOrmDynaContext context = new DefaultOrmDynaContext(name, db, md); context.setAppContext(appContext); context.setConfig(config); context.setMetadataManager(omm); context.setMappingStrategy(mappingStrategy); context.setNamingStrategy(namingStrategy); context.setParameterStrategy(parameterStrategy); context.setCommandFactory(commandFactory); context.setSqlFactory(sqlFactory); context.setQueryFactory(queryFactory); context.setEntityReader(entityReader); context.setRowReader(rowReader); context.setEntityValidator(entityValidator); context.setEventHandler(eventHandler); Dao dao = bf.inject(new DefaultDao(context)); context.setDao(dao); Dmo dmo = bf.inject(new DefaultDmo(context)); context.setDmo(dmo); return context; }
public RestResource build() { DefaultRestResource res = AppContext.factory().inject(new DefaultRestResource(entityMapping)); res.setPreSendHandler(this.preSendHandler); res.setPostSendHandler(this.postSendHandler); if(accessToken!=null){ res.setAccessToken(accessToken); } if (entityMapping != null) { RestDatasourceManager manager = getDataSourceManager(); RestDataSource ds = manager.tryGetDataSource(entityMapping.getRemoteSettings().getDataSource()); String basePath = entityMapping.getRemoteSettings().getEndpoint(); if (ds != null && Strings.isNotEmpty(ds.getEndpoint())) { basePath = ds.getEndpoint(); } if (Strings.isNotEmpty(basePath)) { String url = Paths.suffixWithSlash(basePath) + entityMapping.getRemoteSettings().getRelativePath(); res.setEndpoint(url); } } if (Strings.isNotBlank(endpoint)) { res.setEndpoint(endpoint); } if (Strings.isEmpty(res.getEndpoint())) { throw new RuntimeException("can't build rest resource,when endpoint or entityMapping is empty!"); } res.setEndpoint(formatApiEndPoint(res.getEndpoint())); return res; }