final ServiceCall cur = CallAccess.getCurrentInvocation(); final ServiceCall next = CallAccess.getNextInvocation(); ServiceCall sc = CallAccess.getOrCreateNextInvocation(); sc.setProperty(ServiceCall.MONITORING, Boolean.FALSE); sc.setProperty(ServiceCall.INHERIT, Boolean.TRUE); CallAccess.setCurrentInvocation(sc);
/** * Get the sid. * @return the sid. */ public IServiceIdentifier getServiceIdentifier() { if(sid==null) { // Hack!!! Preserve call context after getServiceIdentifier() ServiceCall sc = CallAccess.getNextInvocation(); CallAccess.resetNextInvocation(); sid = service instanceof ServiceInfo? ((ServiceInfo)service).getManagementService().getServiceIdentifier(): ((IService)service).getServiceIdentifier(); CallAccess.setNextInvocation(sc); } return sid; }
/** * Reset flags when exiting thread. * @param cl The previous context class loader. */ protected void resetExecutionState(ClassLoader cl) { // Reset execution state. IComponentIdentifier.LOCAL.set(null); IInternalExecutionFeature.LOCAL.set(null); // Must reset service call settings when thread retreats from components CallAccess.resetCurrentInvocation(); CallAccess.resetNextInvocation(); Thread.currentThread().setContextClassLoader(cl); this.componentthread = null; executing = false; ISuspendable.SUSPENDABLE.set(null); }
public void exceptionOccurred(Exception exception) { CallAccess.setCurrentInvocation(cur); CallAccess.setNextInvocation(next); // never happens ReturnValueResultListener.super.exceptionOccurred(exception); } });
CallAccess.setCurrentInvocation(sic.getServiceCall()); // next becomes current CallAccess.resetNextInvocation(); // next is null CallAccess.setCurrentInvocation(sic.getLastServiceCall()); CallAccess.setNextInvocation(sic.getServiceCall()); CallAccess.setLastInvocation(ServiceCall.getCurrentInvocation()); CallAccess.setCurrentInvocation(sic.getLastServiceCall()); // current is last CallAccess.resetNextInvocation(); // next is null sic.setCurrentCall(CallAccess.getLastInvocation()); // remember invocation made
this.nextcall = CallAccess.getNextInvocation(); this.currentcall = CallAccess.getCurrentInvocation(); CallAccess.resetNextInvocation(); this.nextcall = CallAccess.createServiceCall(caller, props);
this.calleradapter = IComponentAdapter.LOCAL.get(); this.lastcall = CallAccess.getCurrentInvocation(); this.call = CallAccess.getNextInvocation(); this.call = CallAccess.createServiceCall(caller, props);
public void customResultAvailable(final ITestService ts) { // create a service call meta object and set the timeout // ServiceCall call = ServiceCall.getInvocation(); // call.setProperty("extra", "extra"); // call.setCause(new Cause("abc"+testno, "a", "b", "a", "b")); System.out.println("call started with: "+CallAccess.getCurrentInvocation()); // System.out.println("call started with: "+CallAccess.getNextInvocation().getCause().getCallId()); ts.method("test1").addResultListener(new IResultListener<Void>() { public void resultAvailable(Void result) { ServiceCall sc = CallAccess.getCurrentInvocation(); System.out.println("call returned with: "+sc); tr.setSucceeded(true); ret.setResult(tr); } public void exceptionOccurred(Exception exception) { tr.setFailed(exception.getMessage()); ret.setResult(tr); } }); } });
if(sc!=null && ServiceCall.getCurrentInvocation()==null) CallAccess.setCurrentInvocation(sc);
ServiceCall sc = CallAccess.getOrCreateNextInvocation(null);//props); sc.setProperty(ServiceCall.MONITORING, Boolean.FALSE); sc.setProperty(ServiceCall.INHERIT, true);
CallAccess.setCurrentInvocation(sic.getNextServiceCall()); // next becomes current CallAccess.resetNextInvocation(); // next is null CallAccess.setCurrentInvocation(sic.getCurrentServiceCall()); CallAccess.setNextInvocation(sic.getNextServiceCall()); CallAccess.setLastInvocation(ServiceCall.getCurrentInvocation()); // last will be current CallAccess.setCurrentInvocation(sic.getCurrentServiceCall()); // current will be old current CallAccess.resetNextInvocation(); // next is null sic.setNextCall(CallAccess.getLastInvocation()); // remember invocation made
public void resultAvailable(IMonitoringService monser) { CallAccess.setCurrentInvocation(cur); CallAccess.setNextInvocation(next); if(monser!=null) { if(getComponent().hasEventTargets(PublishTarget.TOALL, PublishEventLevel.MEDIUM)) { // todo: clock? long end = System.currentTimeMillis(); ServiceCall sc = sic.getServiceCall(); Cause cause = sc==null? null: sc.getCause(); monser.publishEvent(new MonitoringEvent(getComponent().getComponentIdentifier(), getComponent().getComponentDescription().getCreationTime(), sic.getMethod().getDeclaringClass().getName()+"."+sic.getMethod().getName(), IMonitoringEvent.TYPE_SERVICECALL_END, cause, end, PublishEventLevel.MEDIUM)); } } ReturnValueResultListener.super.customResultAvailable(null); }
System.out.println("create component started with: "+CallAccess.getCurrentInvocation());
ServiceCall sc = CallAccess.getOrCreateNextInvocation(null);//props); sc.setProperty(ServiceCall.MONITORING, Boolean.FALSE); sc.setProperty(ServiceCall.INHERIT, true);
final ServiceCall cur = CallAccess.getCurrentInvocation(); final ServiceCall next = CallAccess.getNextInvocation(); ServiceCall sc = CallAccess.getOrCreateNextInvocation(props); sc.setProperty(ServiceCall.MONITORING, Boolean.FALSE); sc.setProperty(ServiceCall.INHERIT, Boolean.TRUE); CallAccess.setCurrentInvocation(sc);
/** * Get the sid. * @return the sid. */ public IServiceIdentifier getServiceIdentifier() { if(sid==null) { // Hack!!! Preserve call context after getServiceIdentifier() ServiceCall sc = CallAccess.getNextInvocation(); CallAccess.resetNextInvocation(); sid = service instanceof ServiceInfo? ((ServiceInfo)service).getManagementService().getServiceIdentifier(): ((IService)service).getServiceIdentifier(); CallAccess.setNextInvocation(sc); } return sid; }
CallAccess.setCurrentInvocation(cur); CallAccess.setNextInvocation(next);
IComponentAdapter.LOCAL.set(null); CallAccess.resetCurrentInvocation(); CallAccess.resetNextInvocation(); Thread.currentThread().setContextClassLoader(cl); this.componentthread = null;