public void trace(String msg, Object... args) { log.trace(msg, args); }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public void postCreate(BeanFactory factory) throws Exception { this.caches = new ConcurrentHashMap<>(); this.caches.putAll((Map)factory.getNamedBeans(Cache.class)); log.trace("Found {} managed Cache bean(s)",caches.size()); }
@Override public void dispose() throws Throwable { if(running){ log.trace("Stop app file monitor"); stop(); } } }
@Override protected Class<?> findClass(final String name) throws ClassNotFoundException { if(loadedNames.contains(name)) { return null; }else{ loadedNames.add(name); } if(isParentLoaded(name)) { log.trace("Class '{}' already loaded by parent", name); return null; } return instrumentClass(name); }
@Override protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { log.trace("Loading class '{}'...", name); Class<?> c = findLoadedClass(name); if (null == c) { c = this.findClass(name); } if (null == c) { log.trace("Load class '{}' by parent loader", name); c = parent.loadClass(name); } if (resolve) { resolveClass(c); } return c; }
protected void returnConnectionFailed(PooledConnection conn) throws SQLException { try { conn.closeReal(); } finally { syncPool.returnConnection(conn); log.trace("A connection was returned to pool"); } }
/** * Find all resources in the file system that match the given location pattern via the Ant-style PathMatcher. */ protected Set<Resource> doFindMatchingFileSystemResources(File rootDir, String rootDirPath, String subPattern) throws IOException { if (logger.isTraceEnabled()) { logger.trace("Looking for matching resources in directory tree [" + rootDir.getPath() + "]"); } Set<File> matchingFiles = retrieveMatchingFiles(rootDir, subPattern); Set<Resource> result = new LinkedHashSet<Resource>(matchingFiles.size()); boolean isClasspath = rootDirPath.startsWith(Urls.CLASSPATH_ALL_URL_PREFIX) || rootDirPath.startsWith(Urls.CLASSPATH_ONE_URL_PREFIX); int rootDirPathLength = rootDir.getAbsolutePath().length(); String classpathRoot = isClasspath ? rootDirPath.substring(rootDirPath.indexOf(":") + 1) : null; if(null != classpathRoot && classpathRoot.startsWith("/")){ classpathRoot = classpathRoot.substring(1); } for (File file : matchingFiles) { if(isClasspath){ String classpath = classpathRoot + Paths.normalize(file.getAbsolutePath().substring(rootDirPathLength+1)); result.add(new SimpleFileResource(file, classpath)); }else{ result.add(new SimpleFileResource(file)); } } return result; }
@Override public void addObserver(FileChangeObserver observer) { super.addObserver(observer); if(!running) { if(config.isReloadEnabled()) { log.trace("Start app file monitor at interval : " + interval); Try.throwUnchecked(this::start); } } }
public void returnConnection(PooledConnection conn) throws SQLException { try{ setupConnectionOnReturn(conn); }finally{ try{ conn.setupOnReturn(); }finally { syncPool.returnConnection(conn); log.trace("A connection was returned to pool"); } } }
private Class<?> instrumentClass(String name) throws ClassNotFoundException { Resource resource = tryGetResource(name); if(null == resource) { return null; } if(instrumenting.contains(resource.getURLString())) { log.debug("Found cyclic instrumenting class '{}', instrument it now", name); return instrumentClass(name, resource, false); } log.trace("Try instrument class '{}' (depFirst)", name); Class<?> c = instrumentClass(name, resource, true); return c; }
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodNode mn = ASM.getMethod(cn, name, desc); AnnotationNode a = ASM.getAnnotation(mn, Transactional.class); if(null != a) { log.trace(" #transactional method : {}", name); MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); return new TxMethodVisitor(a, mv , access, name, desc); } return super.visitMethod(access, name, desc, signature, exceptions); }
protected Object doBeanCreation(BeanDefinitionBase bd){ log.trace("Creating bean {}",bd); Object bean; FactoryDefinition fd = bd.getFactoryDefinition(); ValueDefinition vd = bd.getValueDefinition(); if(null != fd) { bean = doResolveValueFromFactory(bd, fd); }else if(null != vd) { bean = doResolveValue(bd, vd, null); } else { bean = doBeanCreationByConstructor(bd); } processBeanCreation(bd, bean); return bean; }
private void loadConfig(ConfigContext context, AppResource... resources){ for(AppResource ar : resources){ try{ Resource resource = ar.getResource(); String resourceUrl = resource.getURL().toString(); if(log.isDebugEnabled()){ if(AppResources.isFrameworkAndCoreResource(resourceUrl)) { log.trace("Load config : {}", LogUtils.getUrl(resource)); }else{ log.debug("Load config : {}", LogUtils.getUrl(resource)); } } if(context.resources.contains(resourceUrl)){ throw new AppConfigException("Cycle importing detected of '" + resourceUrl + "', please check your config : " + resourceUrl); } context.resources.add(resourceUrl); context.setDefaultOverride(ar.isDefaultOverride()); for(AppConfigReader reader : configReaders) { if(reader.readConfig(context, resource)) { break; } } context.resetDefaultOverride(); }catch(IOException e) { throw new AppConfigException("I/O Exception",e); } } }
protected List<Sql> doParseDynaSql(MetadataContext context, String text) { String key = context.getName() + "___" + text; List<Sql> sqls = cache.get(key); if(null == sqls) { log.trace("Parsing dyna sql :\n {}", text); SqlParser parser = new SqlParser(new Lexer(text, ParseLevel.DYNA), expressionLanguage); sqls = parser.sqls(); for(Sql sql : sqls) { sql.prepare(context); } cache.put(key, sqls); } return sqls; }
protected void loadProperties(ConfigContext context, AppResource... resources) { for(AppResource ar : resources){ try{ Resource resource = ar.getResource(); String resourceUrl = resource.getURL().toString(); if(log.isDebugEnabled()){ if(AppResources.isFrameworkAndCoreResource(resourceUrl)) { log.trace("Load properties : {}", LogUtils.getUrl(resource)); }else{ log.debug("Load properties : {}", LogUtils.getUrl(resource)); } } if(context.resources.contains(resourceUrl)){ throw new AppConfigException("Cycle importing detected of '" + resourceUrl + "', please check your config : " + resourceUrl); } context.resources.add(resourceUrl); context.setDefaultOverride(ar.isDefaultOverride()); for(AppPropertyReader reader : propertyReaders) { if(reader.readProperties(context, resource)) { break; } } context.resetDefaultOverride(); }catch(IOException e) { throw new AppConfigException("I/O Exception",e); } } }
public void load(AppResource[] resources) { Args.notNull(resources, "resources"); for (AppResource ar : resources) { Resource resource = ar.getResource(); if (log.isDebugEnabled()) { if (AppResources.isFrameworkAndCoreResource(resource.getURLString())) { log.trace("Load beans : {}", LogUtils.getUrl(resource)); } else { log.debug("Load beans : {}", LogUtils.getUrl(resource)); } } //todo : use AppResource's default override? readDefinitions(container, resource, ar.isDefaultOverride()); } }
protected void createApiParameters(ApiMetadataContext context, ApiMetadataBuilder m, Route route, MApiOperationBuilder op) { Action action = route.getAction(); log.trace(" Parameters({})", action.getArguments().length); for(Argument a : action.getArguments()) { MApiParameterBuilder p = a.getExtension(MApiParameterBuilder.class); if(null != p) { op.addParameter(p); continue; } if(a.isWrapper()) { createApiWrapperParameter(context, m, route, op, a); if(!a.isRequestBody()) { continue; } } if(!a.isContextual()) { createApiParameter(context, m, route, op, a); } } }
@SuppressWarnings("resource") protected void setupConnectionOnBorrow(PooledConnection conn) throws SQLException { conn.setupBeforeOnBorrow(); Connection wrapped = conn.wrapped(); if(null == wrapped) { //Connection not created yet ( or was abandoned ). log.trace("Real Connection not created yet, Create it"); wrapped = createNewConnectionOnBorrow(conn); //todo : test the connection by validation query?. }else if(config.isTestOnBorrow() && !conn.isValid()) { log.info("Real Connection is invalid, Abandon it and Create a new one"); conn.abandonReal(); wrapped = createNewConnectionOnBorrow(conn); }else{ conn.setNewCreatedConnection(false); } setupConnectionStateOnBorrow(conn, wrapped, 1); conn.setupAfterOnBorrow(); }
protected MApiParameterBuilder createApiParameter(ApiMetadataContext context, ApiMetadataBuilder m, Route route, MApiOperationBuilder op, Argument a) { MApiParameterBuilder p = new MApiParameterBuilder(); p.setName(a.getName()); p.setArgument(a); log.trace("{}", a.getName(), p.getLocation()); if(isParameterFileType(a.getType())) { p.setType(MSimpleTypes.BINARY); p.setFile(true); op.addConsume(MimeTypes.MULTIPART_FORM_DATA); }else{ p.setType(createMType(context, m, route.getAction().getControllerClass(), a.getType(), a.getGenericType())); } p.setLocation(getParameterLocation(context, route.getAction(), a, op, p)); if (null != a.getRequired()) { p.setRequired(a.getRequired()); } else if (p.getLocation() == MApiParameter.Location.PATH) { p.setRequired(true); } if(a.getType().isEnum()){ p.setEnumValues(Enums.getValues(a.getType())); } op.addParameter(p); return p; }