Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalDownloadHandler.java')
-rw-r--r--rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalDownloadHandler.java275
1 files changed, 0 insertions, 275 deletions
diff --git a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalDownloadHandler.java b/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalDownloadHandler.java
deleted file mode 100644
index d33bf47d9..000000000
--- a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalDownloadHandler.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Initial Contributors:
- * The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
- * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
- * Contributors:
- * Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
- * Noriaki Takatsu (IBM) - [220126] [dstore][api][breaking] Single process server for multiple clients
- *******************************************************************************/
-
-package org.eclipse.rse.internal.dstore.universal.miners.filesystem;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.dstore.core.model.DE;
-import org.eclipse.dstore.core.model.DataElement;
-import org.eclipse.dstore.core.model.DataStore;
-import org.eclipse.dstore.core.model.IByteConverter;
-import org.eclipse.rse.dstore.universal.miners.ICancellableHandler;
-import org.eclipse.rse.dstore.universal.miners.IUniversalDataStoreConstants;
-import org.eclipse.rse.dstore.universal.miners.UniversalFileSystemMiner;
-import org.eclipse.rse.dstore.universal.miners.UniversalServerUtilities;
-import org.eclipse.rse.services.clientserver.IServiceConstants;
-import org.eclipse.rse.services.clientserver.archiveutils.AbsoluteVirtualPath;
-import org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler;
-import org.eclipse.rse.services.clientserver.archiveutils.VirtualChild;
-import org.eclipse.dstore.core.server.SecuredThread;
-
-
-public class UniversalDownloadHandler extends SecuredThread implements ICancellableHandler
-{
-
- private boolean _isDone = false;
- private UniversalFileSystemMiner _miner;
- private DataElement _status;
- private DataElement _cmdElement;
- private boolean _isCancelled= false;
-
- public UniversalDownloadHandler(DataStore dataStore, UniversalFileSystemMiner miner, DataElement cmdElement,
- DataElement status)
- {
- super(dataStore);
- _miner = miner;
- _status = status;
- _cmdElement = cmdElement;
- }
-
- public void run()
- {
- super.run();
-
- handleDownload(_cmdElement, _status);
- _isDone = true;
- }
-
- public boolean isDone()
- {
- return _isDone;
- }
-
- public boolean isCancelled()
- {
- return _isCancelled;
- }
-
- public void cancel()
- {
- _dataStore.trace("cancelling download"); //$NON-NLS-1$
- _isCancelled = true;
- }
-
-
- protected DataElement handleDownload(DataElement theElement, DataElement status)
- {
- DataElement arg1 = _miner.getCommandArgument(theElement, 1);
- String elementType = arg1.getType();
- String remotePath = arg1.getName();
-
- int buffer_size = IUniversalDataStoreConstants.BUFFER_SIZE;
- DataElement bufferSizeElement = _dataStore.find(theElement, DE.A_TYPE, "buffer_size", 1); //$NON-NLS-1$
- if (bufferSizeElement != null)
- {
- try
- {
- buffer_size = Integer.parseInt(bufferSizeElement.getName());
- }
- catch (Exception e)
- {
- }
- }
-
- String resultType = null;
- String resultMessage = null;
-
-
- FileInputStream inputStream = null;
- BufferedInputStream bufInputStream = null;
-
-
- try
- {
- if (elementType.equals(IUniversalDataStoreConstants.UNIVERSAL_FILE_DESCRIPTOR) || elementType.equals(IUniversalDataStoreConstants.UNIVERSAL_ARCHIVE_FILE_DESCRIPTOR) || elementType.equals(IUniversalDataStoreConstants.UNIVERSAL_VIRTUAL_FILE_DESCRIPTOR))
- {
-
- _dataStore.trace("download:" + remotePath + "," + elementType); //$NON-NLS-1$ //$NON-NLS-2$
-
- File file = new File(remotePath);
-
-
- if (elementType.equals(IUniversalDataStoreConstants.UNIVERSAL_VIRTUAL_FILE_DESCRIPTOR))
- {
- AbsoluteVirtualPath vpath = _miner.getAbsoluteVirtualPath(remotePath);
-
- ISystemArchiveHandler handler = _miner.getArchiveHandlerFor(vpath.getContainingArchiveString());
- if (handler == null)
- {
- status.setAttribute(DE.A_SOURCE, IServiceConstants.FAILED);
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_IO_EXCEPTION;
- resultMessage = "Corrupted archive."; //$NON-NLS-1$
- _isDone = true;
- _dataStore.createObject(arg1, resultType, resultMessage);
- _dataStore.refresh(arg1);
- return _miner.statusDone(status);
- }
- VirtualChild vChild = handler.getVirtualFile(vpath.getVirtualPart(), null);
- file = vChild.getExtractedFile();
-
- }
-
- DataElement arg2 = _miner.getCommandArgument(theElement, 2);
-// DataElement arg3 = _miner.getCommandArgument(theElement, 3);
- _miner.getCommandArgument(theElement, 3);
-
- int mode = (Integer.valueOf(arg1.getSource())).intValue();
- String localPath = arg2.getName();
-
- boolean isText = (mode == IUniversalDataStoreConstants.TEXT_MODE);
-
-// String clientEncoding = null;
-
- if (isText)
- {
-// clientEncoding = arg2.getSource();
- arg2.getSource();
- }
-
- // Read in the file
- inputStream = new FileInputStream(file);
- bufInputStream = new BufferedInputStream(inputStream, buffer_size);
-
- int totalBytes = (int)file.length();
- int totalWritten = 0;
-
- boolean first = true;
- byte[] buffer = new byte[buffer_size];
- byte[] convBytes;
- int numToRead = 0;
-
- IByteConverter byteConverter = _dataStore.getByteConverter();
- byteConverter.setContext(file);
-
- int available = bufInputStream.available();
-
- while (available > 0 && !_isCancelled)
- {
- numToRead = (available < buffer_size) ? available : buffer_size;
-
- int bytesRead = bufInputStream.read(buffer, 0, numToRead);
-
- if (bytesRead == -1)
- break;
- if (isText)
- {
- convBytes = byteConverter.convertHostBytesToClientBytes(buffer, 0, bytesRead);
-
- if (first)
- { // send first set of bytes
- first = false;
- _dataStore.updateFile(localPath, convBytes, convBytes.length, true);
- }
- else
- { // append subsequent segments
- _dataStore.updateAppendFile(localPath, convBytes, convBytes.length, true);
- }
- totalWritten += convBytes.length;
- }
- else
- {
-
- if (first)
- { // send first set of bytes
- first = false;
- _dataStore.updateFile(localPath, buffer, bytesRead, true);
- }
- else
- { // append subsequent segments
- _dataStore.updateAppendFile(localPath, buffer, bytesRead, true);
- }
- totalWritten +=bytesRead;
- }
-
- status.setAttribute(DE.A_SOURCE, "sent "+totalWritten + " of "+totalBytes); //$NON-NLS-1$ //$NON-NLS-2$
- _dataStore.refresh(status);
- available = bufInputStream.available();
- }
-
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_SUCCESS_TYPE;
- resultMessage = IUniversalDataStoreConstants.DOWNLOAD_RESULT_SUCCESS_MESSAGE;
-
- }
- }
- catch (FileNotFoundException e)
- {
- UniversalServerUtilities.logError(UniversalFileSystemMiner.CLASSNAME, "handleDownload: error reading file " + remotePath, e, _dataStore); //$NON-NLS-1$
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_FILE_NOT_FOUND_EXCEPTION;
- resultMessage = e.getLocalizedMessage();
- }
- catch (UnsupportedEncodingException e)
- {
- UniversalServerUtilities.logError(UniversalFileSystemMiner.CLASSNAME, "handleDownload: error reading file " + remotePath, e, _dataStore); //$NON-NLS-1$
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_UNSUPPORTED_ENCODING_EXCEPTION;
- resultMessage = e.getLocalizedMessage();
- }
- catch (IOException e)
- {
- UniversalServerUtilities.logError(UniversalFileSystemMiner.CLASSNAME, "handleDownload: error reading file " + remotePath, e, _dataStore); //$NON-NLS-1$
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_IO_EXCEPTION;
- resultMessage = e.getLocalizedMessage();
- }
- catch (Exception e)
- {
- UniversalServerUtilities.logError(UniversalFileSystemMiner.CLASSNAME, "handleDownload: error reading file " + remotePath, e, _dataStore); //$NON-NLS-1$
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_EXCEPTION;
- resultMessage = e.getLocalizedMessage();
- }
- finally
- {
-
- try
- {
-
- if (bufInputStream != null)
- bufInputStream.close();
-
- }
- catch (IOException e)
- {
- UniversalServerUtilities.logError(UniversalFileSystemMiner.CLASSNAME, "handleDownload: error closing reader on " + remotePath, e, _dataStore); //$NON-NLS-1$
- resultType = IUniversalDataStoreConstants.DOWNLOAD_RESULT_IO_EXCEPTION;
- resultMessage = e.getMessage();
- }
- }
- _isDone = true;
-
- _dataStore.createObject(arg1, resultType, resultMessage);
- _dataStore.refresh(arg1);
-
- return _miner.statusDone(status);
- }
-
-
-}

Back to the top