当前位置: 首页>>代码示例>>Java>>正文


Java Advice.Argument方法代码示例

本文整理汇总了Java中net.bytebuddy.asm.Advice.Argument方法的典型用法代码示例。如果您正苦于以下问题:Java Advice.Argument方法的具体用法?Java Advice.Argument怎么用?Java Advice.Argument使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.bytebuddy.asm.Advice的用法示例。


在下文中一共展示了Advice.Argument方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: addHandlers

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
/**
 * This code might be executed in the context of the bootstrap class loader. That's why we have to make sure we only
 * call code which is visible. For example, we can't use slf4j or directly reference stagemonitor classes
 */
@Advice.OnMethodEnter
private static void addHandlers(@Advice.Argument(value = 0, readOnly = false) List<Handler> handlerChain, @Advice.This Binding binding) {
	final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("org.stagemonitor.tracing.soap.SoapHandlerTransformer");
	final List<Handler<?>> stagemonitorHandlers = Dispatcher.get("org.stagemonitor.tracing.soap.SoapHandlerTransformer");

	if (stagemonitorHandlers != null) {
		logger.fine("Adding SOAPHandlers " + stagemonitorHandlers + " to handlerChain for Binding " + binding);
		if (handlerChain == null) {
			handlerChain = Collections.emptyList();
		}
		// creating a new list as we don't know if handlerChain is immutable or not
		handlerChain = new ArrayList<Handler>(handlerChain);
		for (Handler<?> stagemonitorHandler : stagemonitorHandlers) {
			if (!handlerChain.contains(stagemonitorHandler) &&
					// makes sure we only add the handler to the correct application
					Dispatcher.isVisibleToCurrentContextClassLoader(stagemonitorHandler)) {
				handlerChain.add(stagemonitorHandler);
			}
		}
		logger.fine("Handler Chain: " + handlerChain);
	} else {
		logger.fine("No SOAPHandlers found in Dispatcher for Binding " + binding);
	}
}
 
开发者ID:stagemonitor,项目名称:stagemonitor,代码行数:29,代码来源:SoapHandlerTransformer.java

示例2: interceptVisitFrom

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
@Advice.OnMethodEnter
public synchronized static void interceptVisitFrom(@Advice.Argument(1) File fileOrDirectory) {
    File key = fileOrDirectory.getAbsoluteFile();
    Integer count = COUNTS.get(key);
    COUNTS.put(key, count != null ? count + 1 : 1);

    if (TRACK_LOCATIONS) {
        List<Exception> locations = LOCATIONS.get(key);
        if (locations == null) {
            locations = new ArrayList<Exception>();
            LOCATIONS.put(key, locations);
        }
        locations.add(new Exception());
    }
}
 
开发者ID:lhotari,项目名称:gradle-profiling,代码行数:16,代码来源:CountDirectoryScans.java

示例3: addInitializer

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
@Advice.OnMethodExit(inline = false)
public static void addInitializer(@Advice.Argument(0) Object bean) {
	if (bean instanceof ConfigurableEmbeddedServletContainer) {
		((ConfigurableEmbeddedServletContainer) bean).addInitializers(new StagemonitorServletContextInitializer());
	}
}
 
开发者ID:stagemonitor,项目名称:stagemonitor,代码行数:7,代码来源:SpringBootWebPluginInitializer.java

示例4: onBeforeEvaluate

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
@Advice.OnMethodEnter(inline = false)
public static void onBeforeEvaluate(@Advice.Argument(0) Environment env, @Advice.This Expression dot) {
	Profiler.start(env.getCurrentTemplate().getName() + ':' + dot.getBeginLine() + '#' + dot.toString());
}
 
开发者ID:stagemonitor,项目名称:stagemonitor,代码行数:5,代码来源:FreemarkerProfilingTransformer.java

示例5: addIOCall

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
@Advice.OnMethodEnter(inline = false)
public static void addIOCall(@Advice.Argument(1) ActionRequest actionRequestBuilder) {
	if (actionRequestBuilder instanceof SearchRequest) {
		Profiler.addIOCall(ElasticsearchSearchQueryTransformer.getSearchRequestAsString((SearchRequest) actionRequestBuilder), 0L);
	}
}
 
开发者ID:stagemonitor,项目名称:stagemonitor,代码行数:7,代码来源:ElasticsearchSearchQueryTransformer.java

示例6: enter

import net.bytebuddy.asm.Advice; //导入方法依赖的package包/类
/**
 * Wraps a {@link Runnable} so that it executes with the context that is associated with the
 * current scope.
 *
 * <p>NB: This method is never called as is. Instead, Byte Buddy copies the method's bytecode
 * into Executor#execute.
 *
 * @see Advice
 */
@Advice.OnMethodEnter
@SuppressWarnings(value = "UnusedAssignment")
@SuppressFBWarnings(value = {"DLS_DEAD_LOCAL_STORE", "UPM_UNCALLED_PRIVATE_METHOD"})
private static void enter(@Advice.Argument(value = 0, readOnly = false) Runnable runnable) {
  runnable = ContextTrampoline.wrapInCurrentContext(runnable);
}
 
开发者ID:census-instrumentation,项目名称:opencensus-java,代码行数:16,代码来源:ExecutorInstrumentation.java


注:本文中的net.bytebuddy.asm.Advice.Argument方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。