Esempio n. 1
0
  public void open() {
    if (sessionKey == RexProMessage.EMPTY_SESSION) {
      SessionRequestMessage sessionRequestMessageToSend = new SessionRequestMessage();
      sessionRequestMessageToSend.Username = this.username;
      sessionRequestMessageToSend.Password = this.password;
      sessionRequestMessageToSend.setSessionAsUUID(SessionRequestMessage.EMPTY_SESSION);
      sessionRequestMessageToSend.setRequestAsUUID(UUID.randomUUID());

      try {
        sessionRequestMessageToSend.validateMetaData();
      } catch (RexProException e) {
        e.printStackTrace();
      }

      // if close() gets called then have to recreate the the connection here.  need to factor out
      // this
      // RexPro class.
      if (this.rexProConnection == null) {
        this.rexProConnection = new RexProClientConnection(rexProHost, rexProPort);
      }

      final RexProMessage rcvMessage = sendRequest(sessionRequestMessageToSend, 3);

      if (rcvMessage != null && rcvMessage instanceof SessionResponseMessage) {
        final SessionResponseMessage sessionResponseMessage = (SessionResponseMessage) rcvMessage;
        this.availableLanguages = new ArrayList<String>();
        for (String lang : sessionResponseMessage.Languages) {
          this.availableLanguages.add(lang);
        }

        this.sessionKey = rcvMessage.sessionAsUUID();
      }
    }
  }