public static Object makeVersioned(Object target) throws Exception { if (target instanceof ClassProxy) throw new IllegalStateException("A ClassProxy is not allowed to be Versioned. You must have a concrete object"); ClassProxy proxy = ClassProxyFactory.newInstance(target.getClass()); VersionedObject versioned = new VersionedObject(target); proxy._getInstanceAdvisor().getMetaData().addMetaData(VERSIONED, VERSIONED_OBJECT, versioned, PayloadKey.TRANSIENT); proxy._getInstanceAdvisor().appendInterceptor(VersionedObjectInterceptorFactory.getInstance()); proxy._getInstanceAdvisor().appendInterceptor(new VersionedObjectForwardingInterceptor()); return proxy; }
public Object readResolve() throws ObjectStreamException { try { ClassLoader cl = null; if (advisor.getInstance() != null) { cl = SecurityActions.getClassLoader(advisor.getInstance().getClass()); } //FIXME: When will instance not be null? if (cl == null) { //Fall back to the context classloader cl = SecurityActions.getContextClassLoader(); } return ProxyFactory.createInterfaceProxy(guid, cl, interfaces, mixins, advisor); } catch (Exception e) { throw new RuntimeException(e); } } }
public org.jboss.aop.joinpoint.InvocationResponse _dynamicInvoke(org.jboss.aop.joinpoint.Invocation invocation) throws Throwable { ((org.jboss.aop.joinpoint.InvocationBase) invocation).setInstanceResolver(instanceAdvisor.getMetaData()); org.jboss.aop.advice.Interceptor[] aspects = instanceAdvisor.getInterceptors(); return new org.jboss.aop.joinpoint.InvocationResponse(invocation.invokeNext(aspects)); }
public static GUID getGUID(InstanceAdvised obj) { return (GUID)obj._getInstanceAdvisor().getMetaData().getMetaData(VERSION_MANAGER, VERSION_ID); }
ClassProxy proxy = ClassProxyFactory.newInstance(obj.getClass()); advisor = proxy._getInstanceAdvisor(); advisor.insertInterceptor(new ForwardingInterceptor(obj)); Dispatcher.singleton.registerTarget(objectId, proxy); families = (Map) advisor.getMetaData().getMetaData(CLUSTERED_REMOTING, CLUSTER_FAMILIES); if (families != null) ClusteringTargetsRepository.initTarget(proxyFamilyName, target.getReplicantList()); families.put(proxyFamilyName, target); advisor.insertInterceptor(0, new ReplicantsManagerInterceptor(families)); proxyAdvisor.insertInterceptor(IsLocalInterceptor.singleton); advisor.insertInterceptor(SecurityClientInterceptor.singleton); advisor.insertInterceptor(ClientTxPropagationInterceptor.singleton); proxyAdvisor.insertInterceptor(MergeMetaDataInterceptor.singleton); proxyAdvisor.insertInterceptor(ClusterChooserInterceptor.singleton); proxyAdvisor.insertInterceptor(InvokeRemoteInterceptor.singleton); proxyAdvisor.getMetaData().addMetaData(CLUSTERED_REMOTING, CLUSTER_FAMILY_WRAPPER, new FamilyWrapper(proxyFamilyName, target.getReplicantList()), proxyAdvisor.getMetaData().addMetaData(CLUSTERED_REMOTING, LOADBALANCE_POLICY, lb, PayloadKey.AS_IS); proxyAdvisor.getMetaData().addMetaData(InvokeRemoteInterceptor.REMOTING,
public Object invokeMethod(InstanceAdvisor instanceAdvisor, Object target, long methodHash, Object[] arguments, MethodInfo info) throws Throwable { Interceptor[] aspects = info.getInterceptors(); if (instanceAdvisor != null && (instanceAdvisor.hasInterceptors())) { aspects = instanceAdvisor.getInterceptors(aspects); } MethodInvocation invocation = new MethodInvocation(info, aspects); invocation.setArguments(arguments); invocation.setTargetObject(target); return invocation.invokeNext(); }
public Object getAspectInstance(InstanceAdvisor instanceAdvisor) { return instanceAdvisor.getPerInstanceJoinpointAspect(joinpoint, aspectDefinition); } }
public Object getAspectInstance(InstanceAdvisor instanceAdvisor) { return instanceAdvisor.getPerInstanceAspect(aspectDefinition); } }
public Map makeVersionedMap(Map map, ArrayList newObjects) throws Exception { ClassProxy proxy = ClassProxyFactory.newInstance(map.getClass()); GUID guid = tag(proxy); DistributedMapState manager = new DistributedMapState(guid, timeout, proxy, map, this, synchManager); StateManager.setStateManager(proxy, manager); CollectionStateChangeInterceptor interceptor = new CollectionStateChangeInterceptor(manager); proxy._getInstanceAdvisor().appendInterceptor(interceptor); newObjects.add(manager); return (Map)proxy; }
aspects = advised._getInstanceAdvisor().getInterceptors(aspects);
public void untag(InstanceAdvised advised) { org.jboss.aop.metadata.SimpleMetaData metaData = advised._getInstanceAdvisor().getMetaData(); metaData.removeMetaData(VERSION_MANAGER, VERSION_ID); }
/** * Invokes interceptor chain. * This is the beginning */ public Object invokeRead(Object target, int index) throws Throwable { Interceptor[] aspects = fieldReadInfos[index].getInterceptors(); if (aspects == null) aspects = new Interceptor[0]; FieldReadInvocation invocation; if (target != null) { InstanceAdvised advised = (InstanceAdvised) target; InstanceAdvisor advisor = advised._getInstanceAdvisor(); if (advisor != null && advisor.hasInterceptors()) { aspects = advisor.getInterceptors(aspects); } } invocation = new FieldReadInvocation(advisedFields[index], index, aspects); invocation.setAdvisor(this); invocation.setTargetObject(target); return invocation.invokeNext(); }
public Interceptor getAspectInstance(InstanceAdvisor ia) { return (Interceptor) ia.getPerInstanceJoinpointAspect(joinpoint, aspectDefinition); }
public Interceptor getAspectInstance(InstanceAdvisor ia) { return (Interceptor) ia.getPerInstanceAspect(aspectDefinition); }
public List makeVersionedList(List list, ArrayList newObjects) throws Exception { ClassProxy proxy = ClassProxyFactory.newInstance(list.getClass()); GUID guid = tag(proxy); DistributedListState manager = new DistributedListState(guid, timeout, proxy, list, this, synchManager); StateManager.setStateManager(proxy, manager); CollectionStateChangeInterceptor interceptor = new CollectionStateChangeInterceptor(manager); proxy._getInstanceAdvisor().appendInterceptor(interceptor); newObjects.add(manager); return (List)proxy; }
/** * 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 static StateManager getStateManager(InstanceAdvised obj) { return (StateManager)obj._getInstanceAdvisor().getMetaData().getMetaData(STATE_MANAGER, STATE_MANAGER); }
public org.jboss.aop.joinpoint.InvocationResponse _dynamicInvoke(org.jboss.aop.joinpoint.Invocation invocation) throws Throwable { ((org.jboss.aop.joinpoint.InvocationBase) invocation).setInstanceResolver(instanceAdvisor.getMetaData()); org.jboss.aop.advice.Interceptor[] aspects = instanceAdvisor.getInterceptors(); return new org.jboss.aop.joinpoint.InvocationResponse(invocation.invokeNext(aspects)); }
/** * Invokes interceptor chain. * This is the beginning */ public Object invokeWrite(Object target, int index, Object value) throws Throwable { Interceptor[] aspects = fieldWriteInfos[index].getInterceptors(); if (aspects == null) aspects = new Interceptor[0]; FieldWriteInvocation invocation; if (target != null) { InstanceAdvised advised = (InstanceAdvised) target; InstanceAdvisor advisor = advised._getInstanceAdvisor(); if (advisor != null && advisor.hasInterceptors()) { aspects = advised._getInstanceAdvisor().getInterceptors(aspects); } } invocation = new FieldWriteInvocation(advisedFields[index], index, value, aspects); invocation.setAdvisor(this); invocation.setTargetObject(target); return invocation.invokeNext(); }
return ia.getPerInstanceJoinpointAspect(joinpoint, def);