@Override public javax.ejb.EJBMetaData getEJBMetaData(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; return buildEjbMetaData(info, beanContext, idCode); }
protected void updateServer(final EJBRequest req, final EJBResponse res) { final CallContext callContext = CallContext.getCallContext(); final BeanContext beanContext = callContext.getBeanContext(); clusterableRequestHandler.updateServer(beanContext, req, res); }
@Override public void processResponse(final Response response, final ObjectOutputStream out, final ProtocolMetaData metaData) throws Exception { if (EJBResponse.class.isInstance(response)) { final EJBResponse res = (EJBResponse) response; try { res.setMetaData(metaData); res.writeExternal(out); } catch (final Throwable t) { if (logger.isDebugEnabled()) { logger.debug("Failed to write EjbResponse", t); } else if (logger.isInfoEnabled()) { logger.info("Failed to write EjbResponse - Debug for stacktrace: " + t); } } finally { try { SystemInstance.get().getComponent(SecurityService.class).disassociate(); } catch (final Throwable t) { logger.warning("Failed to disassociate security", t); } final CallContext call = CallContext.getCallContext(); if (null != call) { call.reset(); } EJBHomeProxyHandle.resolver.set(null); EJBObjectProxyHandle.resolver.set(null); } } else { logger.error("EjbRequestHandler cannot process an instance of: " + response.getClass().getName()); } }
@Override public javax.ejb.EJBHome getEJBHome(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; Object securityIdentity = null; try { securityIdentity = call.getEJBRequest().getClientIdentity(); } catch (final Exception e) { e.printStackTrace(); } final ClientMetaData cMetaData = new ClientMetaData(securityIdentity); final EJBMetaDataImpl eMetaData = buildEjbMetaData(info, beanContext, idCode); final EJBHomeHandler hanlder = EJBHomeHandler.createEJBHomeHandler(JNDIContext.globalExecutor(), eMetaData, getServerMetaData(), cMetaData, null); return hanlder.createEJBHomeProxy(); }
protected void doEjbHome_FIND(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer();
@Override public javax.ejb.EJBObject getEJBObject(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; Object securityIdentity = null; try { securityIdentity = call.getEJBRequest().getClientIdentity(); } catch (final Exception e) { e.printStackTrace(); } final ClientMetaData cMetaData = new ClientMetaData(securityIdentity); final EJBMetaDataImpl eMetaData = buildEjbMetaData(info, beanContext, idCode); final Object primKey = info.getPrimaryKey(); final EJBObjectHandler hanlder = EJBObjectHandler.createEJBObjectHandler(JNDIContext.globalExecutor(), eMetaData, getServerMetaData(), cMetaData, primKey, null); return (javax.ejb.EJBObject) hanlder.createEJBObjectProxy(); }
@Override public javax.ejb.HomeHandle getHomeHandle(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; Object securityIdentity = null; try { securityIdentity = call.getEJBRequest().getClientIdentity(); } catch (final Exception e) { e.printStackTrace(); } final ClientMetaData cMetaData = new ClientMetaData(securityIdentity); final EJBMetaDataImpl eMetaData = buildEjbMetaData(info, beanContext, idCode); final EJBHomeHandler hanlder = EJBHomeHandler.createEJBHomeHandler(JNDIContext.globalExecutor(), eMetaData, getServerMetaData(), cMetaData, call.get(JNDIContext.AuthenticationInfo.class)); return new EJBHomeHandle(hanlder.createEJBHomeProxy()); }
protected void doEjbHome_REMOVE_BY_PKEY(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer(); c.invoke( req.getDeploymentId(), InterfaceType.EJB_HOME, req.getInterfaceClass(), req.getMethodInstance(), req.getMethodParameters(), req.getPrimaryKey() ); res.setResponse(req.getVersion(), ResponseCodes.EJB_OK, null); }
protected void doEjbHome_METHOD(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer(); final Object result = c.invoke( req.getDeploymentId(), InterfaceType.EJB_HOME, req.getInterfaceClass(), req.getMethodInstance(), req.getMethodParameters(), req.getPrimaryKey() ); res.setResponse(req.getVersion(), ResponseCodes.EJB_OK, result); }
protected void doEjbObject_REMOVE(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer(); c.invoke( req.getDeploymentId(), InterfaceType.EJB_OBJECT, req.getInterfaceClass(), req.getMethodInstance(), req.getMethodParameters(), req.getPrimaryKey() ); res.setResponse(req.getVersion(), ResponseCodes.EJB_OK, null); }
protected void doEjbHome_REMOVE_BY_HANDLE(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer(); c.invoke( req.getDeploymentId(), InterfaceType.EJB_HOME, req.getInterfaceClass(), req.getMethodInstance(), req.getMethodParameters(), req.getPrimaryKey() ); res.setResponse(req.getVersion(), ResponseCodes.EJB_OK, null); }
protected void doEjbObject_BUSINESS_METHOD(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = call.getBeanContext(); final boolean asynchronous = beanContext.isAsynchronous(req.getMethodInstance());
@Override public javax.ejb.Handle getHandle(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; Object securityIdentity = null; try { securityIdentity = call.getEJBRequest().getClientIdentity(); } catch (final Exception e) { //Ignore } final ClientMetaData cMetaData = new ClientMetaData(securityIdentity); final EJBMetaDataImpl eMetaData = buildEjbMetaData(info, beanContext, idCode); final Object primKey = info.getPrimaryKey(); final EJBObjectHandler handler = EJBObjectHandler.createEJBObjectHandler(JNDIContext.globalExecutor(), eMetaData, getServerMetaData(), cMetaData, primKey, null); return new EJBObjectHandle(handler.createEJBObjectProxy()); }
protected void doEjbHome_CREATE(final EJBRequest req, final EJBResponse res) throws Exception { final CallContext call = CallContext.getCallContext(); final RpcContainer c = (RpcContainer) call.getBeanContext().getContainer(); Object result = c.invoke( req.getDeploymentId(), InterfaceType.EJB_HOME, req.getInterfaceClass(), req.getMethodInstance(), req.getMethodParameters(), req.getPrimaryKey() ); if (result instanceof ProxyInfo) { final ProxyInfo info = (ProxyInfo) result; res.setResponse(req.getVersion(), ResponseCodes.EJB_OK, info.getPrimaryKey()); } else { result = new RemoteException("The bean is not EJB compliant. The bean should be created or and exception should be thrown."); logger.error(req + "The bean is not EJB compliant. The bean should be created or and exception should be thrown."); res.setResponse(req.getVersion(), ResponseCodes.EJB_SYS_EXCEPTION, new ThrowableArtifact((Throwable) result)); } }
@Override public Object getBusinessObject(final ProxyInfo info) { final CallContext call = CallContext.getCallContext(); final BeanContext beanContext = info.getBeanContext(); final int idCode = -1; Object securityIdentity = null; try { securityIdentity = call.getEJBRequest().getClientIdentity(); } catch (final Exception e) { e.printStackTrace(); } final ClientMetaData cMetaData = new ClientMetaData(securityIdentity); final EJBMetaDataImpl eMetaData = new EJBMetaDataImpl(null, null, beanContext.getPrimaryKeyClass(), beanContext.getComponentType().toString(), beanContext.getDeploymentID().toString(), idCode, convert(info.getInterfaceType()), info.getInterfaces(), beanContext.getAsynchronousMethodSignatures()); eMetaData.loadProperties(beanContext.getProperties()); final Object primKey = info.getPrimaryKey(); final EJBObjectHandler hanlder = EJBObjectHandler.createEJBObjectHandler(JNDIContext.globalExecutor(), eMetaData, getServerMetaData(), cMetaData, primKey, null); return hanlder.createEJBObjectProxy(); }
call = CallContext.getCallContext(); call.setEJBRequest(req); call.setBeanContext(di);