public Object invoke(Invocation invocation) throws Throwable { if( callback == null ) { lazyInit(invocation); } Object returnValue = invocation.nextInterceptor().invoke(invocation); String type = invocation.getType(); if (type != Invocation.OP_SETATTRIBUTE ) return returnValue; String attrName = invocation.getName(); String policy = (String)attrPersistencePolicies.get(attrName); if (policy == null) policy = mbeanPersistencePolicy; if (policy.equalsIgnoreCase(PP_ON_UPDATE) == true) { MBeanInvoker invoker = invocation.getInvoker(); Descriptor attrDesc = invocation.getDescriptor(); invoker.updateAttributeInfo(attrDesc); callback.store(); } else if(policy.equalsIgnoreCase(PP_NO_MORE_OFTEN_THAN) == true) { PersistenceTimerTask task = (PersistenceTimerTask) timerTaskMap.get(attrName); if( task != null ) task.setHasUpdated(true); } return returnValue; }
public Object invoke(Invocation invocation) throws Throwable { if( callback == null ) { lazyInit(invocation); } Object returnValue = invocation.nextInterceptor().invoke(invocation); String type = invocation.getType(); if (type != Invocation.OP_SETATTRIBUTE ) return returnValue; String attrName = invocation.getName(); String policy = attrPersistencePolicies.get(attrName); if (policy == null) policy = mbeanPersistencePolicy; if (policy.equalsIgnoreCase(PP_ON_UPDATE) == true) { MBeanInvoker invoker = invocation.getInvoker(); Descriptor attrDesc = invocation.getDescriptor(); invoker.updateAttributeInfo(attrDesc); callback.store(); } else if(policy.equalsIgnoreCase(PP_NO_MORE_OFTEN_THAN) == true) { PersistenceTimerTask task = timerTaskMap.get(attrName); if( task != null ) task.setHasUpdated(true); } return returnValue; }