예제 #1
0
 /**
  * Solicita el fichero seleccionado al servidor
  *
  * @param pathName dirección física del fichero
  * @return fichero solicitado
  * @throws IOException si ocurre algún error en el proceso descargar el fichero solicitado
  * @throws FileAccessException
  */
 public File downloadFile(String pathName) throws IOException, FileAccessException {
   File local = getLocalFile(pathName);
   if (local.exists()) {
     OutputMonitor.printLine(
         "The resource " + local.getName() + " is downloaded.", OutputMonitor.INFORMATION_MESSAGE);
     return local;
   } else {
     return this.fileStore.getFile(pathName);
   }
 }
예제 #2
0
  /**
   * Inicializa la comunicación con el servidor.
   *
   * @throws RequestException es lanzada cuando no se puede establecer la comunicación el servidor
   */
  protected void activeCommunication() throws RequestException {
    try {
      OutputMonitor.printLine("Initialize communication", OutputMonitor.INFORMATION_MESSAGE);

      // iniciar el entorno de ejecución de ICE
      if (communication.isInitialize()) {
        communication.reset();
      } else {
        communication.initialize(this.args);
      }
      SettingProperties.loadSettingProperies();
      ApplicationContext.initContext();
      String host = cnxServer.getServerHost();
      int serverPort = cnxServer.getServerPort();
      int clientPort = clientSetting.getPortNumber();
      OutputMonitor.printLine("Server host: " + host, OutputMonitor.INFORMATION_MESSAGE);
      OutputMonitor.printLine("Server port: " + serverPort, OutputMonitor.INFORMATION_MESSAGE);
      OutputMonitor.printLine(
          "Server name: " + cnxServer.getServerName(), OutputMonitor.INFORMATION_MESSAGE);
      OutputMonitor.printLine(
          "Container name: " + cnxServer.getContainerName(), OutputMonitor.INFORMATION_MESSAGE);
      OutputMonitor.printLine(
          "Session name: " + cnxServer.getSessionName(), OutputMonitor.INFORMATION_MESSAGE);
      OutputMonitor.printLine(
          "File store name: " + cnxServer.getFileStoreName(), OutputMonitor.INFORMATION_MESSAGE);

      if (clientPort <= 0) {
        clientPort = (clientPort <= 0) ? Utilities.getAvailablePort() : clientPort;
        clientSetting.setPortNumber(clientPort);
      }

      this.appManager = new ApplicationManager(communication, netController, clientPort);
      this.appManager.activate();
      this.server =
          new DelegateServerManager(communication, cnxServer.getServerName(), host, serverPort);
      this.server.create(); // se establece la comunicación con el proxy del servidor
      this.container = server.getDlgSessionContainer(cnxServer.getContainerName());
      this.session =
          container.getNoPersistentSessionByName(
              cnxServer.getSessionName(), Invocation.SYNCHRONOUS_METHOD_INVOCATION);
      this.session.setCommunication(container.getCommunication());
      this.fileStore =
          new DelegateFileStore(communication, cnxServer.getFileStoreName(), host, serverPort);
      this.fileStore.create();
      this.startedCommunication = true;

      OutputMonitor.printLine("Initialized communication", OutputMonitor.INFORMATION_MESSAGE);
    } catch (Exception ex) {
      throw new RequestException(ex.getMessage());
    }
  }
예제 #3
0
  /**
   * Registra la entrada del usuario en la sesión de comunicación del servidor sin autenticación y
   * al mismo tiempo entra en una sesión de búsqueda colaborativa por defecto. Tomando el nombre de
   * usuario del sistema operativo, más un ID generado automáticamente por sistema, para identificar
   * al seeker en el servidor. Solo para ejemplos demostrativos.
   *
   * @param seeker
   * @throws RequestException si ocurre alguna error durante el proceso de la solicitud
   */
  public void loginSearchCollabSession(Seeker seeker) throws RequestException {
    activeCommunication();

    this.rqsDispatcher = new RequestDispatcher(communication.getCommunicator());
    clientSetting.setSeeker(seeker);
    this.dRole = session.getDlgRole();
    //        ImageIcon fromDB = seeker.getAvatar();
    //        this.icon32 = fromDB;
    seeker.setState(Seeker.STATE_ONLINE);
    seeker.setRole(Seeker.ROLE_CHAIRMAN);

    OutputMonitor.printLine("Request connection...", OutputMonitor.INFORMATION_MESSAGE);
    this.dRole.login(seeker, appManager, rqsDispatcher);
    String chairman = session.getChairmanName("DefaultSCS");
    if (!chairman.equals(seeker.getUser())) {
      seeker.setRole(Seeker.ROLE_MEMBER);
    }
  }