List of usage examples for org.aspectj.lang ProceedingJoinPoint getArgs
Object[] getArgs();
From source file:com.vmware.bdd.aop.lock.ClusterEntityExclusiveWriteLockAdvice.java
License:Open Source License
public Object lock(ProceedingJoinPoint pjp) throws Throwable { Object[] objs = pjp.getArgs(); String clusterName = (String) objs[0]; logger.info("Lock exclusive write for cluster " + clusterName); boolean locked = false; try {/*w w w . ja va 2s . c o m*/ lockExclusiveWrite((String) clusterName); locked = true; return pjp.proceed(); } finally { if (locked) { unlockExclusiveWrite(clusterName); logger.info("Unlock exclusive write for cluster " + clusterName); } } }
From source file:com.vmware.bdd.aop.software.DefaultPreStartServicesAdvice.java
License:Open Source License
@Around("@annotation(com.vmware.bdd.software.mgmt.plugin.aop.PreConfiguration)") public Object preClusterConfiguration(ProceedingJoinPoint pjp) throws Throwable { MethodSignature signature = (MethodSignature) pjp.getSignature(); Method method = signature.getMethod(); PreConfiguration beforeConfig = AnnotationUtils.findAnnotation(method, PreConfiguration.class); String nameParam = beforeConfig.clusterNameParam(); String[] paramNames = signature.getParameterNames(); Object[] args = pjp.getArgs(); String clusterName = null;/*from w w w .j a v a2 s . c om*/ for (int i = 0; i < paramNames.length; i++) { if (paramNames[i].equals(nameParam)) { clusterName = (String) args[i]; } } if (clusterName == null) { logger.error("Cluster name is not specified in method"); throw BddException.INTERNAL(null, "Wrong annotation usage. Cluster name must be specified in method."); } ClusterEntity cluster = clusterEntityMgr.findByName(clusterName); if (cluster == null) { throw BddException.NOT_FOUND("Cluster", clusterName); } preStartServices(clusterName); return pjp.proceed(); }
From source file:com.vsct.supervision.notification.log.LoggingAspect.java
License:Open Source License
@Around(value = "@within(com.vsct.supervision.notification.log.Loggable) || @annotation(com.vsct.supervision.notification.log.Loggable)") public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { final MethodSignature signature = (MethodSignature) proceedingJoinPoint.getSignature(); final Method method = signature.getMethod(); final Class clazz = signature.getClass(); final Loggable loggableMethod = method.getAnnotation(Loggable.class); final Loggable loggableClass = proceedingJoinPoint.getTarget().getClass().getAnnotation(Loggable.class); //get current log level final LogLevel logLevel = loggableMethod != null ? loggableMethod.value() : loggableClass.value(); final String service = StringUtils.isNotBlank(loggableClass.service()) ? loggableClass.service() : clazz.getName();//from w ww . j av a 2 s . c o m final String methodName = StringUtils.isNotBlank(loggableClass.method()) ? loggableClass.method() : method.getName(); final String star = "**********"; //before LogWriter.write(proceedingJoinPoint.getTarget().getClass(), logLevel, star + service + "." + methodName + "() start execution" + star); //show traceParams final boolean showParams = loggableMethod != null ? loggableMethod.traceParams() : loggableClass.traceParams(); if (showParams) { if (proceedingJoinPoint.getArgs() != null && proceedingJoinPoint.getArgs().length > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < proceedingJoinPoint.getArgs().length; i++) { sb.append(method.getParameterTypes()[i].getName() + ":" + proceedingJoinPoint.getArgs()[i]); if (i < proceedingJoinPoint.getArgs().length - 1) sb.append(", "); } LogWriter.write(proceedingJoinPoint.getTarget().getClass(), logLevel, service + "." + methodName + "() args " + sb); } } final long startTime = System.currentTimeMillis(); //start method execution final Object result = proceedingJoinPoint.proceed(); final long endTime = System.currentTimeMillis(); //show results if (result != null) { boolean showResults = loggableMethod != null ? loggableMethod.traceResult() : loggableClass.traceResult(); if (showResults) { LogWriter.write(proceedingJoinPoint.getTarget().getClass(), logLevel, service + "." + methodName + "() Result : " + result); } } //show after LogWriter.write(proceedingJoinPoint.getTarget().getClass(), logLevel, star + service + "." + methodName + "() finished execution and takes " + (endTime - startTime) + " millis time to execute " + star); return result; }
From source file:com.willowtreeapps.respeeker.ResPeeker.java
License:Apache License
@Around("setContentView()") public Object aroundSetContentView(ProceedingJoinPoint joinPoint) throws Throwable { Object result = joinPoint.proceed(); Activity context = (Activity) joinPoint.getThis(); int layoutRes = (Integer) joinPoint.getArgs()[0]; View view = context.findViewById(android.R.id.content); attachTouchListener(view);/*from ww w . j a va 2 s .c o m*/ ViewPeeker.put(view, layoutRes); Configurator configurator = new Configurator(context); Properties properties = configurator.getProperties(); Log.v("__ResPeeker__", "config <<" + propertiesToString(properties) + ">>"); return result; }
From source file:com.willowtreeapps.respeeker.ResPeeker.java
License:Apache License
@Around("inflate()") public Object aroundInflate(ProceedingJoinPoint joinPoint) throws Throwable { Object result = joinPoint.proceed(); int layoutRes = (Integer) joinPoint.getArgs()[0]; View layoutView = (View) joinPoint.getArgs()[1]; View view = (View) result; attachTouchListener(view);/*w w w .j a v a 2s. c om*/ ViewPeeker.put(layoutView, layoutRes); return result; }
From source file:com.willowtreeapps.respeeker.ResPeeker.java
License:Apache License
@Around("setOnTouchListener()") public Object aroundSetOnTouchListener(ProceedingJoinPoint joinPoint) throws Throwable { final View.OnTouchListener originalTouchListener = (View.OnTouchListener) joinPoint.getArgs()[0]; final View.OnTouchListener interceptTouchListener = getTouchListener(); View.OnTouchListener delegateTouchListener = new View.OnTouchListener() { @Override/*from www . j ava 2 s. c o m*/ public boolean onTouch(View v, MotionEvent event) { interceptTouchListener.onTouch(v, event); return originalTouchListener != null && originalTouchListener.onTouch(v, event); } }; return joinPoint.proceed(new Object[] { delegateTouchListener }); }
From source file:com.wms.studio.service.handler.GenericAopHandler.java
License:Apache License
/** * TODO ??/*w w w . j av a2 s . c o m*/ * * @param point * @return * @throws Throwable */ @Around(value = TAG) public Object process(ProceedingJoinPoint point) throws Throwable { String handlerName = getHandlerName(point); boolean isNeedHandler = StringUtils.isNotBlank(handlerName); HandlerData data = null; Object result = null; boolean handlerResult = false; if (isNeedHandler) { data = new HandlerData(); data.setArgs(point.getArgs()); handlerResult = beforeProcess(data, handlerName); } if (handlerResult) { return null; } try { result = point.proceed(); } catch (Exception e) { if (isNeedHandler) { data.setException(e); handlerResult = exceptionProcess(data, handlerName); } else { throw e; } } if (isNeedHandler) { data.setResult(result); handlerResult = afterProcess(data, handlerName); } return result; }
From source file:com.zhaimi.message.aop.AbstractSendMessageAdvice.java
License:Apache License
/** * SendMsg /*from w w w. j a v a2s . com*/ * @param pjp * @return * @throws Throwable */ public Object around(ProceedingJoinPoint pjp) throws Throwable { Object result = null; Method method = getMethod(pjp); String beforeTopic = getBeforeSendMsgTopicOnMethod(method); Object[] args = pjp.getArgs(); if (beforeTopic != null) { // if(log.isDebugEnabled()) // log.debug("BeforeTopic='{}',Method={} " ,beforeTopic, method); sendMessageBefore(method, beforeTopic, args); } String afterTopic = getAfterSendMsgTopicOnMethod(method); try { //? result = pjp.proceed(args); if (afterTopic != null) { // if(log.isDebugEnabled()) // log.debug("AfterTopic='{}', Method {}" ,afterTopic, method); sendMessageAfter(method, afterTopic, args, result); } } catch (Throwable e) { // if(log.isDebugEnabled()) // log.debug("sendMessageAfterException exception " + e); try { sendMessageAfterException(method, afterTopic, args, e); } catch (Throwable t) { /* do nothing */ } throw e; } if (log.isDebugEnabled()) log.debug("SendMsgBeforeInvokeAdvice result " + result); return result; }
From source file:com.zhaimi.message.aop.AbstractSendMessageAdvice.java
License:Apache License
/** * Get method of joinpoint/*w ww .jav a 2 s . c o m*/ * @param pjp * @return */ protected Method getMethod(ProceedingJoinPoint pjp) { Class<?> clazz = pjp.getTarget().getClass(); String methodName = pjp.getSignature().getName(); Method method = null; int argCount = pjp.getArgs().length; // Object[] args = pjp.getArgs(); // Class<?>[] argClasses = new Class[args.length]; // for (int i = 0; i < args.length; i++) { // Class<?> argClass = args[i].getClass(); // // argClass = convertActualClass( argClass ); // argClasses[i] = args[i]!=null ? args[i].getClass() : null; // } try { String key = clazz.getName() + "." + methodName + "#" + argCount; if ((method = methodCache.get(key)) == null) { method = getMethodFromClass(clazz, methodName, argCount); if (method != null) { methodCache.put(key, method); } else { log.error("AOP pointcut method not found! methodName={},argCount={}", methodName, argCount); } } } catch (Exception e) { throw new RuntimeException("Method not found!" + clazz.getName() + "." + methodName, e); } return method; }
From source file:com.zoltran.perf.aspect.PerformanceMonitorAspect.java
License:Open Source License
@Around(value = "execution(@com.zoltran.perf.aspect.PerformanceMonitor * *(..)) && @annotation(annot)", argNames = "pjp,annot") public Object performanceMonitoredMethod(ProceedingJoinPoint pjp, PerformanceMonitor annot) throws Throwable { final long start = System.currentTimeMillis(); Object result = pjp.proceed(); final long elapsed = System.currentTimeMillis() - start; MeasurementRecorderSource mrs = mrecSources.getUnchecked(annot.recorderSource()); mrs.getRecorder(pjp.toLongString()).record(elapsed); if (elapsed > annot.warnThresholdMillis()) { if (elapsed > annot.errorThresholdMillis()) { LOG.error("Execution time {} ms for {} exceeds error threshold of {} ms, arguments {}", new Object[] { elapsed, pjp.toShortString(), annot.errorThresholdMillis(), pjp.getArgs() }); } else {/*w ww . j av a 2s. c o m*/ LOG.warn("Execution time {} ms for {} exceeds warning threshold of {} ms, arguments {}", new Object[] { elapsed, pjp.toShortString(), annot.warnThresholdMillis(), pjp.getArgs() }); } } else { LOG.debug("Execution time {} ms for {}, arguments {}", new Object[] { elapsed, pjp.toShortString(), pjp.getArgs() }); } return result; }