/** * 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); } }
/** * 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()); } }
/** * 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); } }