public Object processInvocation(final InterceptorContext context) throws Exception { final SecurityDomain oldDomain = context.putPrivateData(SecurityDomain.class, securityDomain); try { return context.proceed(); } finally { context.putPrivateData(SecurityDomain.class, oldDomain); } } }
void prepareInterceptorContext(InterceptorContext interceptorContext){ for(Map.Entry<Object, Object> entry : contextInformation.entrySet()) { interceptorContext.putPrivateData(entry.getKey(), entry.getValue()); } }
protected InterceptorContext prepareInterceptorContext() { final InterceptorContext interceptorContext = new InterceptorContext(); interceptorContext.putPrivateData(Component.class, component); interceptorContext.putPrivateData(ComponentInstance.class, this); interceptorContext.setContextData(new HashMap<String, Object>()); return interceptorContext; }
@Override public void release() { try { InterceptorContext interceptorContext = new InterceptorContext(); interceptorContext.putPrivateData(ComponentView.class, componentView); interceptorContext.putPrivateData(Component.class, component); clientPreDestroyInterceptor.processInvocation(interceptorContext); } catch (Exception e) { ROOT_LOGGER.preDestroyInterceptorFailure(e, component.getComponentClass()); } }
private EJBContextHandle() { final InterceptorContext interceptorContext = CurrentInvocationContext.get(); if(interceptorContext != null) { this.interceptorContext = interceptorContext.clone(); // overwrite invocation type so EE concurrency tasks have special access to resources such as the user tx this.interceptorContext.putPrivateData(InvocationType.class, InvocationType.CONCURRENT_CONTEXT); } else { this.interceptorContext = null; } }
@Override public Object processInvocation(final InterceptorContext context) throws Exception { context.putPrivateData(WeldInjectionContext.class, weldComponentService.createInjectionContext()); return context.proceed(); } }
@Override public Object processInvocation(final InterceptorContext context) throws Exception { final EJBComponent component = getComponent(context, EJBComponent.class); if (component.isStatisticsEnabled()) { context.putPrivateData(START_WAIT_TIME, System.currentTimeMillis()); } return context.proceed(); } }
@Override public Object processInvocation(final InterceptorContext context) throws Exception { final Method method = SessionBeanHomeInterceptorFactory.INIT_METHOD.get(); final Object[] params = SessionBeanHomeInterceptorFactory.INIT_PARAMETERS.get(); //we remove them immediately, so they are not set for the rest of the invocation //TODO: find a better way to handle this SessionBeanHomeInterceptorFactory.INIT_METHOD.remove(); SessionBeanHomeInterceptorFactory.INIT_PARAMETERS.remove(); if (method != null) { final InvocationType invocationType = context.getPrivateData(InvocationType.class); try { context.putPrivateData(InvocationType.class, InvocationType.SFSB_INIT_METHOD); method.invoke(context.getTarget(), params); } catch (InvocationTargetException e) { if (CreateException.class.isAssignableFrom(e.getCause().getClass())) { EjbExceptionTransformingInterceptorFactories.setCreateException((CreateException) e.getCause()); } throw Interceptors.rethrow(e.getCause()); } finally { context.putPrivateData(InvocationType.class, invocationType); } } return context.proceed(); } }
private void prepareInterceptorContext(final SkeletonStrategy op, final Object[] params, final InterceptorContext interceptorContext) throws IOException, ClassNotFoundException { if (!home) { if (componentView.getComponent() instanceof StatefulSessionComponent) { final SessionID sessionID = (SessionID) unmarshalIdentifier(); interceptorContext.putPrivateData(SessionID.class, sessionID); } } interceptorContext.setContextData(new HashMap<>()); interceptorContext.setParameters(params); interceptorContext.setMethod(op.getMethod()); interceptorContext.putPrivateData(ComponentView.class, componentView); interceptorContext.putPrivateData(Component.class, componentView.getComponent()); interceptorContext.putPrivateData(InvocationType.class, InvocationType.REMOTE); interceptorContext.setTransaction(inboundTxCurrent == null ? null : inboundTxCurrent.getCurrentTransaction()); }
public Object processInvocation(final InterceptorContext context) throws Exception { final Map<String, Object> mdc = MDC.getMap(); if(mdc != null){ context.putPrivateData(KEY, new StoredLogDiagnosticContext(mdc, NDC.get())); try { return context.proceed(); } finally { context.putPrivateData(KEY, null); } } else { return context.proceed(); } } }
/** {@inheritDoc} */ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { final Interceptor interceptor = interceptors.get(method); if (interceptor == null) { throw new NoSuchMethodError(method.toString()); } final InterceptorContext context = new InterceptorContext(); // special location for original proxy context.putPrivateData(Object.class, proxy); context.putPrivateData(Component.class, componentView.getComponent()); context.putPrivateData(ComponentView.class, componentView); context.putPrivateData(SecurityDomain.class, WildFlySecurityManager.isChecking() ? AccessController.doPrivileged((PrivilegedAction<SecurityDomain>) SecurityDomain::getCurrent) : SecurityDomain.getCurrent()); instance.prepareInterceptorContext(context); context.setParameters(args); context.setMethod(method); // setup the public context data context.setContextData(new HashMap<String, Object>()); context.setBlockingCaller(true); return interceptor.processInvocation(context); } }
@Override public Object processInvocation(final InterceptorContext context) throws Exception { SessionBeanComponentInstance instance = (SessionBeanComponentInstance) context.getPrivateData(ComponentInstance.class); final InvocationType invocationType = context.getPrivateData(InvocationType.class); try { context.putPrivateData(InvocationType.class, InvocationType.DEPENDENCY_INJECTION); ((SessionBean) context.getTarget()).setSessionContext(instance.getEjbContext()); } finally { context.putPrivateData(InvocationType.class, invocationType); } return context.proceed(); } }
@Override public Object processInvocation(InterceptorContext interceptorContext) throws Exception { SingletonComponent singletonComponent = getComponent(interceptorContext, SingletonComponent.class); ComponentInstance singletonComponentInstance = singletonComponent.getComponentInstance(); if (singletonComponentInstance == null) { throw EjbLogger.ROOT_LOGGER.componentInstanceNotAvailable(interceptorContext); } interceptorContext.putPrivateData(ComponentInstance.class, singletonComponentInstance); return interceptorContext.proceed(); } }
@Override public void callTimeout(final TimerImpl timer, final Method timeoutMethod) throws Exception { final Interceptor interceptor; synchronized (this) { if (!started) { //this can happen if an invocation has been triggered as the deployment is shutting down throw EjbLogger.EJB3_TIMER_LOGGER.timerInvocationFailedDueToInvokerNotBeingStarted(); } interceptor = timeoutInterceptors.get(timeoutMethod); } if(interceptor == null) { throw EjbLogger.EJB3_TIMER_LOGGER.failToInvokeTimeout(timeoutMethod); } final InterceptorContext context = new InterceptorContext(); context.setContextData(new HashMap<String, Object>()); context.setMethod(timeoutMethod); if(timeoutMethod.getParameterTypes().length == 0) { context.setParameters(new Object[0]); } else { final Object[] params = new Object[1]; params[0] = timer; context.setParameters(params); } context.setTimer(timer); context.putPrivateData(Component.class, ejbComponent.getValue()); context.putPrivateData(MethodIntf.class, MethodIntf.TIMER); context.putPrivateData(InvocationType.class, InvocationType.TIMER); interceptor.processInvocation(context); }
public Object processInvocation(final InterceptorContext context) throws Exception { final ComponentClientInstance instance = context.getPrivateData(ComponentClientInstance.class); final Component component = context.getPrivateData(Component.class); final ComponentInstance componentInstance = component.createInstance(); boolean ok = false; try { context.putPrivateData(ComponentInstance.class, componentInstance); instance.setViewInstanceData(ComponentInstance.class, componentInstance); final Object result = context.proceed(); ok = true; return result; } finally { context.putPrivateData(ComponentInstance.class, null); if (! ok) { componentInstance.destroy(); instance.setViewInstanceData(ComponentInstance.class, null); } } } }
private Object execute(final Interceptor interceptor, final Method method, final Object... parameters) { if (interceptor == null) return null; final InterceptorContext interceptorContext = new InterceptorContext(); //we need the method so this does not count as a lifecycle invocation interceptorContext.setMethod(method); interceptorContext.putPrivateData(Component.class, getComponent()); interceptorContext.putPrivateData(ComponentInstance.class, this); interceptorContext.putPrivateData(InvokeMethodOnTargetInterceptor.PARAMETERS_KEY, parameters); interceptorContext.setContextData(new HashMap<String, Object>()); interceptorContext.setTarget(getInstance()); final AbstractTransaction transaction = ContextTransactionManager.getInstance().getTransaction(); interceptorContext.setTransactionSupplier(() -> transaction); try { return interceptor.processInvocation(interceptorContext); } catch (Error e) { throw e; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new EJBException(e); } }
@SuppressWarnings("unchecked") @Override public T aroundConstruct(ConstructionHandle<T> ctx, AnnotatedConstructor<T> constructor, Object[] parameters, Map<String, Object> data) throws Exception { context.putPrivateData(ConstructionHandle.class, ctx); context.setParameters(parameters); context.setContextData(data); context.setConstructor(constructor.getJavaMember()); context.proceed(); // proceed with the WF interceptor chain return (T) context.getTarget(); } });
/** * {@inheritDoc} */ public final void destroy() { if (doneUpdater.compareAndSet(this, 0, 1)) try { preDestroy(); final Object instance = getInstance(); if (instance != null) { final InterceptorContext interceptorContext = prepareInterceptorContext(); interceptorContext.setTarget(instance); interceptorContext.putPrivateData(InvocationType.class, InvocationType.PRE_DESTROY); preDestroy.processInvocation(interceptorContext); } } catch (Exception e) { ROOT_LOGGER.componentDestroyFailure(e, this); } finally { component.finishDestroy(); } }
public Object processInvocation(final InterceptorContext context) throws Exception { final Map<String, Object> mdc = MDC.getMap(); if (mdc != null) { for (String str : mdc.keySet()) { MDC.remove(str); } } final StoredLogDiagnosticContext data = (StoredLogDiagnosticContext) context.getPrivateData(KEY); context.putPrivateData(KEY, null); if (data != null && data.getMdc() != null) { for (Map.Entry<String, Object> entry : data.getMdc().entrySet()) { MDC.put(entry.getKey(), entry.getValue()); } final int depth = NDC.getDepth(); NDC.push(data.getNdc()); try { return context.proceed(); } finally { NDC.setMaxDepth(depth); for (String str : MDC.getMap().keySet()) { MDC.remove(str); } } } return context.proceed(); } }
context.putPrivateData(ComponentInstance.class, instance); return context.proceed(); } catch (Exception ex) {