Search in sources :

Example 1 with SessionOpenRequest

use of org.jboss.ejb.server.SessionOpenRequest in project wildfly by wildfly.

the class AssociationImpl method receiveSessionOpenRequest.

@Override
@NotNull
public CancelHandle receiveSessionOpenRequest(@NotNull final SessionOpenRequest sessionOpenRequest) {
    final EJBIdentifier ejbIdentifier = sessionOpenRequest.getEJBIdentifier();
    final String appName = ejbIdentifier.getAppName();
    final String moduleName = ejbIdentifier.getModuleName();
    final String beanName = ejbIdentifier.getBeanName();
    final String distinctName = ejbIdentifier.getDistinctName();
    final EjbDeploymentInformation ejbDeploymentInformation = findEJB(appName, moduleName, distinctName, beanName);
    if (ejbDeploymentInformation == null) {
        sessionOpenRequest.writeNoSuchEJB();
        return CancelHandle.NULL;
    }
    final Component component = ejbDeploymentInformation.getEjbComponent();
    if (!(component instanceof StatefulSessionComponent)) {
        sessionOpenRequest.writeNotStateful();
        return CancelHandle.NULL;
    }
    final StatefulSessionComponent statefulSessionComponent = (StatefulSessionComponent) component;
    // generate the session id and write out the response, possibly on a separate thread
    final AtomicBoolean cancelled = new AtomicBoolean();
    Runnable runnable = () -> {
        if (cancelled.get()) {
            sessionOpenRequest.writeCancelResponse();
            return;
        }
        final SessionID sessionID;
        try {
            sessionID = statefulSessionComponent.createSessionRemote();
        } catch (Exception t) {
            EjbLogger.REMOTE_LOGGER.exceptionGeneratingSessionId(t, statefulSessionComponent.getComponentName(), ejbIdentifier);
            sessionOpenRequest.writeException(t);
            return;
        }
        sessionOpenRequest.convertToStateful(sessionID);
    };
    execute(sessionOpenRequest, runnable, false);
    return ignored -> cancelled.set(true);
}
Also used : DeploymentRepositoryListener(org.jboss.as.ejb3.deployment.DeploymentRepositoryListener) NotNull(org.wildfly.common.annotation.NotNull) ModuleDeployment(org.jboss.as.ejb3.deployment.ModuleDeployment) ClusterTopologyListener(org.jboss.ejb.server.ClusterTopologyListener) SessionBeanComponent(org.jboss.as.ejb3.component.session.SessionBeanComponent) Future(java.util.concurrent.Future) EJBComponentUnavailableException(org.jboss.as.ejb3.component.EJBComponentUnavailableException) Map(java.util.Map) Affinity(org.jboss.ejb.client.Affinity) SecurityIdentity(org.wildfly.security.auth.server.SecurityIdentity) DeploymentModuleIdentifier(org.jboss.as.ejb3.deployment.DeploymentModuleIdentifier) InvocationRequest(org.jboss.ejb.server.InvocationRequest) Method(java.lang.reflect.Method) StatefulSessionComponent(org.jboss.as.ejb3.component.stateful.StatefulSessionComponent) Registry(org.wildfly.clustering.registry.Registry) CancellationException(java.util.concurrent.CancellationException) StatefulEJBLocator(org.jboss.ejb.client.StatefulEJBLocator) Set(java.util.Set) InterceptorContext(org.jboss.invocation.InterceptorContext) Collectors(java.util.stream.Collectors) ClientMapping(org.jboss.as.network.ClientMapping) EJBException(javax.ejb.EJBException) ModuleAvailabilityListener(org.jboss.ejb.server.ModuleAvailabilityListener) List(java.util.List) EjbDeploymentInformation(org.jboss.as.ejb3.deployment.EjbDeploymentInformation) EJBLocator(org.jboss.ejb.client.EJBLocator) Request(org.jboss.ejb.server.Request) ComponentIsStoppedException(org.jboss.as.ee.component.ComponentIsStoppedException) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Connection(org.jboss.remoting3.Connection) HashMap(java.util.HashMap) EJBIdentifier(org.jboss.ejb.client.EJBIdentifier) ArrayList(java.util.ArrayList) StatelessSessionComponent(org.jboss.as.ejb3.component.stateless.StatelessSessionComponent) DeploymentRepository(org.jboss.as.ejb3.deployment.DeploymentRepository) SessionOpenRequest(org.jboss.ejb.server.SessionOpenRequest) CancellationFlag(org.jboss.as.ejb3.component.interceptors.CancellationFlag) Executor(java.util.concurrent.Executor) Association(org.jboss.ejb.server.Association) ComponentView(org.jboss.as.ee.component.ComponentView) IOException(java.io.IOException) InvocationType(org.jboss.as.ee.component.interceptors.InvocationType) EJBMethodLocator(org.jboss.ejb.client.EJBMethodLocator) SessionID(org.jboss.ejb.client.SessionID) EjbLogger(org.jboss.as.ejb3.logging.EjbLogger) ListenerHandle(org.jboss.ejb.server.ListenerHandle) EJBClientInvocationContext(org.jboss.ejb.client.EJBClientInvocationContext) Component(org.jboss.as.ee.component.Component) CancelHandle(org.jboss.ejb.server.CancelHandle) Collections(java.util.Collections) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) EjbDeploymentInformation(org.jboss.as.ejb3.deployment.EjbDeploymentInformation) StatefulSessionComponent(org.jboss.as.ejb3.component.stateful.StatefulSessionComponent) SessionBeanComponent(org.jboss.as.ejb3.component.session.SessionBeanComponent) StatefulSessionComponent(org.jboss.as.ejb3.component.stateful.StatefulSessionComponent) StatelessSessionComponent(org.jboss.as.ejb3.component.stateless.StatelessSessionComponent) Component(org.jboss.as.ee.component.Component) EJBIdentifier(org.jboss.ejb.client.EJBIdentifier) SessionID(org.jboss.ejb.client.SessionID) EJBComponentUnavailableException(org.jboss.as.ejb3.component.EJBComponentUnavailableException) CancellationException(java.util.concurrent.CancellationException) EJBException(javax.ejb.EJBException) ComponentIsStoppedException(org.jboss.as.ee.component.ComponentIsStoppedException) IOException(java.io.IOException) NotNull(org.wildfly.common.annotation.NotNull)

Aggregations

IOException (java.io.IOException)1 Method (java.lang.reflect.Method)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 CancellationException (java.util.concurrent.CancellationException)1 Executor (java.util.concurrent.Executor)1 Future (java.util.concurrent.Future)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Collectors (java.util.stream.Collectors)1 EJBException (javax.ejb.EJBException)1 Component (org.jboss.as.ee.component.Component)1 ComponentIsStoppedException (org.jboss.as.ee.component.ComponentIsStoppedException)1 ComponentView (org.jboss.as.ee.component.ComponentView)1 InvocationType (org.jboss.as.ee.component.interceptors.InvocationType)1 EJBComponentUnavailableException (org.jboss.as.ejb3.component.EJBComponentUnavailableException)1 CancellationFlag (org.jboss.as.ejb3.component.interceptors.CancellationFlag)1