org.jboss.errai.bus.client.api.QueueSession类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中org.jboss.errai.bus.client.api.QueueSession类的一些代码示例,展示了QueueSession类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueueSession类的具体详情如下:
包路径:org.jboss.errai.bus.client.api.QueueSession
类名称:QueueSession

QueueSession介绍

[英]The combination of a communication channel (identified by an HTTPSession or other communication session, such as an open WebSocket channel) with an Errai Bus queue ID. An instance of QueueSession identifies a physical communication link with a specific subject on a remote bus. A single communication link typically has many QueueSession instances (one per bus subject).

Note on scope of attributes

QueueSession provides a map-like facility for storing and retrieving arbitrary object ("attributes") by name. These attributes are shared among all QueueSession instances that are associated with the same communication channel (for example, an HTTPSession or a WebSocketChannel).
[中]通信信道(由HTTPSession或其他通信会话标识,如开放WebSocket信道)与Errai总线队列ID的组合。QueueSession实例标识远程总线上特定主题的物理通信链路。单个通信链路通常有多个QueueSession实例(每个总线主体一个)。
####关于属性范围的说明
QueueSession提供了一种类似地图的工具,用于按名称存储和检索任意对象(“属性”)。这些属性在与同一通信通道(例如,HTTPSession或WebSocketChannel)关联的所有QueueSession实例之间共享。

代码示例

代码示例来源:origin: org.jboss.errai/errai-bus

private void addQueue(final QueueSession session, final MessageQueue queue) {
 messageQueues.put(session, queue);
 sessionLookup.put(session.getSessionId(), session);
}

代码示例来源:origin: org.jboss.errai/errai-bus

private SubContext getLocalContext() {
 synchronized (this) {
  SubContext ctx = session.getAttribute(SubContext.class, context);
  if (ctx == null) {
   session.setAttribute(context, ctx = new SubContext());
  }
  return ctx;
 }
}

代码示例来源:origin: org.jboss.errai/errai-bus

@Override
public QueueSession createOrGetSession(final HttpSession externSessRef, final String remoteQueueID) {
 final SessionsContainer sc;
 if (containersByHttpSessionId.containsKey(externSessRef.getId())) {
  sc = containersByHttpSessionId.get(externSessRef.getId());
 }
 else {
  sc = new SessionsContainer();
  containersByHttpSessionId.put(externSessRef.getId(), sc);
  csrfCheck.prepareSession(externSessRef, log);
 }
 QueueSession qs = sc.getSession(remoteQueueID);
 if (qs == null) {
  log.debug("queue session " + remoteQueueID + " started");
  qs = sc.createSession(externSessRef.getId(), remoteQueueID);
  qs.setAttribute(HttpSession.class.getName(), externSessRef);
  qs.addSessionEndListener(new SessionEndListener() {
   @Override
   public void onSessionEnd(final SessionEndEvent event) {
    log.debug("queue session " + remoteQueueID + " ended");
    sc.removeSession(remoteQueueID);
   }
  });
 }
 return qs;
}

代码示例来源:origin: org.jboss.errai/errai-bus

@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
 public static boolean verifyOneTimeToken(final QueueSession session, final String token) {
  synchronized (session) {
   final boolean tokenRemoved;
   if (session.hasAttribute(TOKEN_STORE)) {
    final List tokenStore = session.getAttribute(List.class, TOKEN_STORE);
    tokenRemoved = tokenStore.remove(token);
    if (tokenStore.isEmpty()) {
     session.removeAttribute(TOKEN_STORE);
    }
   }
   else {
    tokenRemoved = false;
   }
   return tokenRemoved;
  }
 }
}

代码示例来源:origin: org.jboss.errai/errai-bus

queue.stopQueue();
 closeQueue(queue);
 session.endSession();
 busMonitor.notifyQueueAttached(session.getSessionId(), queue);
if (sseEnabled && !session.hasAttribute("NoSSE")) {
 capabilitiesBuffer.append(",").append(Capabilities.SSE.name());
msg.set(ConnectionSessionKey, queue.getSession().getSessionId());
send(msg, false);

代码示例来源:origin: errai/errai

LOGGER.trace(
    "Negotiation done for errai session: {} on websocket session: {}",
    queueSession.getSessionId(), session.getId());
queueSession.addSessionEndListener(new SessionEndListener() {
 @Override
 public void onSessionEnd(SessionEndEvent event) {

代码示例来源:origin: org.jboss.errai/errai-bus

/**
 * @return the HTTP session object associated with this {@link Thread}
 */
public static HttpSession getHttpSession() {
 final QueueSession qs = getQueueSession();
 if (qs == null) {
  return null;
 }
 
 return qs.getAttribute(HttpSession.class, HttpSession.class.getName());
}

代码示例来源:origin: org.jboss.errai/errai-bus

ref.getSession().endSession();
deferredQueue.remove(ref);
ref.discard();

代码示例来源:origin: errai/errai

queue.stopQueue();
 closeQueue(queue);
 session.endSession();
 busMonitor.notifyQueueAttached(session.getSessionId(), queue);
if (sseEnabled && !session.hasAttribute("NoSSE")) {
 capabilitiesBuffer.append(",").append(Capabilities.SSE.name());
msg.set(ConnectionSessionKey, queue.getSession().getSessionId());
send(msg, false);

代码示例来源:origin: org.jboss.errai/errai-bus-jsr356-websocket

LOGGER.trace(
    "Negotiation done for errai session: {} on websocket session: {}",
    queueSession.getSessionId(), session.getId());
queueSession.addSessionEndListener(new SessionEndListener() {
 @Override
 public void onSessionEnd(SessionEndEvent event) {

代码示例来源:origin: errai/errai

@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
 public static boolean verifyOneTimeToken(final QueueSession session, final String token) {
  synchronized (session) {
   final boolean tokenRemoved;
   if (session.hasAttribute(TOKEN_STORE)) {
    final List tokenStore = session.getAttribute(List.class, TOKEN_STORE);
    tokenRemoved = tokenStore.remove(token);
    if (tokenStore.isEmpty()) {
     session.removeAttribute(TOKEN_STORE);
    }
   }
   else {
    tokenRemoved = false;
   }
   return tokenRemoved;
  }
 }
}

代码示例来源:origin: errai/errai

/**
 * @return the HTTP session object associated with this {@link Thread}
 */
public static HttpSession getHttpSession() {
 final QueueSession qs = getQueueSession();
 if (qs == null) {
  return null;
 }
 
 return qs.getAttribute(HttpSession.class, HttpSession.class.getName());
}

代码示例来源:origin: errai/errai

ref.getSession().endSession();
deferredQueue.remove(ref);
ref.discard();

代码示例来源:origin: org.jboss.errai/errai-bus

@Override
public void associateNewQueue(final QueueSession oldSession, final QueueSession newSession) {
 sessionLookup.put(newSession.getSessionId(), oldSession);
 messageQueues.put(newSession, getQueue(oldSession));
}

代码示例来源:origin: org.jboss.errai/errai-bus

@SuppressWarnings({"unchecked", "SynchronizationOnLocalVariableOrMethodParameter"})
public static String getNewOneTimeToken(final QueueSession session) {
 synchronized (session) {
  List tokenStore = session.getAttribute(List.class, TOKEN_STORE);
  if (tokenStore == null) {
   session.setAttribute(TOKEN_STORE, tokenStore = new ArrayList());
  }
  if (tokenStore.size() == 6) {
   log.warn("Client with session " + session  +
       " has too many active tokens. Removing oldest one and deactivating channel.");
   tokenStore.remove(0);
  }
  final String oneTimeToken = SecureHashUtil.nextSecureHash("SHA-256");
  tokenStore.add(oneTimeToken);
  return oneTimeToken;
 }
}

代码示例来源:origin: org.jboss.errai/errai-weld-integration

private void updateLaundry(final QueueSession queueSession) {
  Boolean routesActive = queueSession.getAttribute(Boolean.class, CDI_EVENT_ROUTES_ACTIVE);
  if (routesActive == null) {
   synchronized (queueSession) {
    routesActive = queueSession.getAttribute(Boolean.class, CDI_EVENT_ROUTES_ACTIVE);
    if (routesActive == null) {
     final LaundryList laundryList = LaundryListProviderFactory.get().getLaundryList(queueSession);
     laundryList.add(new Laundry() {
      @Override
      public void clean() throws Exception {
       removeAllForId(queueSession.getSessionId());
      }
     });
    }
   }
  }
 }
}

代码示例来源:origin: errai/errai

@Override
public QueueSession createOrGetSession(final HttpSession externSessRef, final String remoteQueueID) {
 final SessionsContainer sc;
 if (containersByHttpSessionId.containsKey(externSessRef.getId())) {
  sc = containersByHttpSessionId.get(externSessRef.getId());
 }
 else {
  sc = new SessionsContainer();
  containersByHttpSessionId.put(externSessRef.getId(), sc);
  csrfCheck.prepareSession(externSessRef, log);
 }
 QueueSession qs = sc.getSession(remoteQueueID);
 if (qs == null) {
  log.debug("queue session " + remoteQueueID + " started");
  qs = sc.createSession(externSessRef.getId(), remoteQueueID);
  qs.setAttribute(HttpSession.class.getName(), externSessRef);
  qs.addSessionEndListener(new SessionEndListener() {
   @Override
   public void onSessionEnd(final SessionEndEvent event) {
    log.debug("queue session " + remoteQueueID + " ended");
    sc.removeSession(remoteQueueID);
   }
  });
 }
 return qs;
}

代码示例来源:origin: org.jboss.errai/errai-bus

public static String getPageFileName(final MessageQueue queue) {
 return tempDir + "/queuecache/" + queue.getSession().getSessionId().replaceAll("\\-", "_");
}

代码示例来源:origin: errai/errai

private SubContext getLocalContext() {
 synchronized (this) {
  SubContext ctx = session.getAttribute(SubContext.class, context);
  if (ctx == null) {
   session.setAttribute(context, ctx = new SubContext());
  }
  return ctx;
 }
}

代码示例来源:origin: kiegroup/appformer

@Before
public void setup() {
  setupRpcContext();
  User testUser = new UserImpl("testUser");
  when(sessionInfo.getIdentity()).thenReturn(testUser);
  when(queueSession.getAttribute(HttpSession.class,
                  HttpSession.class.getName())).thenReturn(httpSession);
}

相关文章

微信公众号

最新文章

更多