public ClassInstanceAdvisor(Object obj) { this.instanceRef = new WeakReference<Object>(obj); if (obj instanceof Advised) { Advised advised = (Advised) obj; Advisor advizor = advised._getAdvisor(); setAdvisorAndInitialise(advizor); } }
/** * This is used by DistributedState.buildObject when the DistributedState object is * serialized across the wire and must recreate the object it represents */ public void addVersioning(DistributedPOJOState manager, Advised advised) { StateManager.setStateManager(advised, manager); StateChangeInterceptor interceptor = new StateChangeInterceptor(manager); org.jboss.aop.metadata.SimpleMetaData metaData = advised._getInstanceAdvisor().getMetaData(); metaData.addMetaData(VERSION_MANAGER, VERSION_ID, manager.getGUID()); advised._getInstanceAdvisor().appendInterceptor(interceptor); }
public Object createVersion(Transaction tx) throws Exception { final Object version; final long versionId; lock.acquire(); try { version = new MarshalledValue(currentObject).get(); if (version instanceof Advised) { // REVISIT: Currently share the InstanceAdvisor between versions Advised versionAdvised = (Advised)version; Advised currentAdvised = (Advised)currentObject; versionAdvised._setInstanceAdvisor(currentAdvised._getInstanceAdvisor()); } versionId = ++versionIdGenerator; } finally { lock.release(); } tx.registerSynchronization(new VersionSynchronization(tx, versionId, version)); txLocal.set(tx, version); return version; }
org.jboss.aop.metadata.SimpleMetaData metaData = advised._getInstanceAdvisor().getMetaData(); GUID guid; synchronized (metaData) StateChangeInterceptor interceptor = new StateChangeInterceptor(manager); manager.acquireWriteLock(); advised._getInstanceAdvisor().appendInterceptor(interceptor); try Field[] advisedFields = ((ClassAdvisor)advised._getAdvisor()).getAdvisedFields(); for (int i = 0; i < advisedFields.length; i++)
public void checkOptimisticLock(Transaction tx) { // NOTE THIS CODE ASSUMES THAT A WRITELOCK HAS BEEN ACQUIRED!!!! HashMap state = getTxState(tx); Iterator it = state.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry)it.next(); Integer index = (Integer)entry.getKey(); DistributedFieldUpdate update = (DistributedFieldUpdate)entry.getValue(); DistributedFieldUpdate orig = (DistributedFieldUpdate)fieldMap.get(index); if (update.getVersionId() <= orig.getVersionId()) { Advised advised = null; if (advisedRef != null) { advised = (Advised)advisedRef.get(); } if (advised != null) { ClassAdvisor advisor = (ClassAdvisor)advised._getAdvisor(); Field field = advisor.getAdvisedFields()[index.intValue()]; throw new OptimisticLockFailure("optimistic lock failure for field " + field.getName() + " of class " + field.getDeclaringClass().getName()); } } } }
private InstanceAdvisor getInstanceAdvisor(Invocation invocation, Object targetObject) { if (targetObject instanceof Advised) { Advised advised = (Advised) targetObject; return advised._getInstanceAdvisor(); } Advisor advisor = invocation.getAdvisor(); if (advisor != null) { if (advisor instanceof InstanceAdvisor) { return (InstanceAdvisor) advisor; } if (advisor instanceof ClassProxyContainer && invocation instanceof ContainerProxyMethodInvocation) { ContainerProxyMethodInvocation pi = (ContainerProxyMethodInvocation)invocation; return pi.getProxy().getInstanceAdvisor(); } } return null; }
if (target instanceof Advised) ClassAdvisor advisor = (ClassAdvisor)((Advised)target)._getAdvisor();
private InstanceAdvisor getInstanceAdvisor(Invocation invocation, Object targetObject) { if (targetObject instanceof Advised) { Advised advised = (Advised) targetObject; return advised._getInstanceAdvisor(); } Advisor advisor = invocation.getAdvisor(); if (advisor == null) { return null; } if (advisor instanceof InstanceAdvisor) { return (InstanceAdvisor) advisor; } if (advisor instanceof ClassProxyContainer && invocation instanceof ContainerProxyMethodInvocation) { ContainerProxyMethodInvocation pi = (ContainerProxyMethodInvocation)invocation; return pi.getProxy().getInstanceAdvisor(); } return null; }
public void insertInterceptorStack(String stackName) { AdviceStack stack = AspectManager.instance().getAdviceStack(stackName); if (stack == null) throw new RuntimeException("Stack " + stackName + " not found."); ClassAdvisor classAdvisor = null; Object inst = getInstance(); if (inst instanceof Advised) { Advised advised = (Advised) inst; classAdvisor = ((ClassAdvisor) advised._getAdvisor()); } Interceptor[] interceptors = stack.createInterceptors(classAdvisor, null); for (Interceptor interceptor: interceptors) { insertInterceptor(interceptor); } if (this.stacks == null) { this.stacks = new HashMap<String, Interceptor[]>(); } this.stacks.put(stackName, interceptors); if (interceptorChainObserver != null) { this.interceptorChainObserver.instanceInterceptorsAdded(this, interceptors.length); } }
InstanceAdvisor advisor = advised._getInstanceAdvisor(); aspect = advisor.getPerInstanceJoinpointAspect(joinpoint, aspectDefinition); instanceAdvisor = advised._getInstanceAdvisor();
public void appendInterceptorStack(String stackName) { AdviceStack stack = AspectManager.instance().getAdviceStack(stackName); if (stack == null) throw new RuntimeException("Stack " + stackName + " not found."); ClassAdvisor classAdvisor = null; Object inst = getInstance(); if (inst instanceof Advised) { Advised advised = (Advised) inst; classAdvisor = ((ClassAdvisor) advised._getAdvisor()); } Interceptor[] interceptors = stack.createInterceptors(classAdvisor, null); for (Interceptor interceptor: interceptors) { appendInterceptor(interceptor); } if (this.stacks == null) { this.stacks = new HashMap<String, Interceptor[]>(); } this.stacks.put(stackName, interceptors); if (interceptorChainObserver != null) { this.interceptorChainObserver.instanceInterceptorsAdded(this, interceptors.length); } }
InstanceAdvisor advisor = advised._getInstanceAdvisor(); aspect = advisor.getPerInstanceAspect(aspectDefinition); instanceAdvisor = advised._getInstanceAdvisor();
ClassAdvisor advisor = (ClassAdvisor)advised._getAdvisor(); log.trace("build field " + advisor.getAdvisedFields()[update.getFieldIndex()].getName()); Object val = update.getNonDereferencedValue();
InstanceAdvisor advisor = advised._getInstanceAdvisor(); Interceptor interceptor = (Interceptor) advisor.getPerInstanceJoinpointAspect(joinpoint, aspectDefinition); if (interceptor != null)
public void insertInterceptorStack(String stackName) { AdviceStack stack = AspectManager.instance().getAdviceStack(stackName); if (stack == null) throw new RuntimeException("Stack " + stackName + " not found."); ClassAdvisor classAdvisor = null; if (getInstance() instanceof Advised) { Advised advised = (Advised) getInstance(); classAdvisor = ((ClassAdvisor) advised._getAdvisor()); } Interceptor[] interceptors = stack.createInterceptors(classAdvisor, null); for (Interceptor interceptor: interceptors) { insertInterceptor(interceptor); } if (this.stacks == null) { this.stacks = new HashMap<String, Interceptor[]>(); } this.stacks.put(stackName, interceptors); if (interceptorChainObserver != null) { this.interceptorChainObserver.instanceInterceptorsAdded(this, interceptors.length); } }
InstanceAdvisor advisor = advised._getInstanceAdvisor(); Interceptor interceptor = (Interceptor) advisor.getPerInstanceAspect(aspectDefinition); if (interceptor != null)
public void appendInterceptorStack(String stackName) { AdviceStack stack = AspectManager.instance().getAdviceStack(stackName); if (stack == null) throw new RuntimeException("Stack " + stackName + " not found."); ClassAdvisor classAdvisor = null; if (getInstance() instanceof Advised) { Advised advised = (Advised) getInstance(); classAdvisor = ((ClassAdvisor) advised._getAdvisor()); } Interceptor[] interceptors = stack.createInterceptors(classAdvisor, null); for (Interceptor interceptor: interceptors) { appendInterceptor(interceptor); } if (this.stacks == null) { this.stacks = new HashMap<String, Interceptor[]>(); } this.stacks.put(stackName, interceptors); if (interceptorChainObserver != null) { this.interceptorChainObserver.instanceInterceptorsAdded(this, interceptors.length); } }
advisor = ((Advised) obj)._getInstanceAdvisor(); clazz = obj.getClass(); Dispatcher.singleton.registerTarget(objectId, obj);
Advisor advisor = ((Advised) target)._getAdvisor(); return advisor.dynamicInvoke(target, invocation);