From f5970624428cafa92ed354af21c8ed23c9961632 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 23 Apr 2008 19:35:57 +0000 Subject: [PATCH] [227406][api][dstore] need apis for getting buffer size in IDataStoreProvider --- .../dstore/core/model/IDataStoreProvider.java | 17 -------- .../META-INF/MANIFEST.MF | 3 +- .../dstore/DStoreConnectorService.java | 21 ---------- .../dstore/files/DStoreFileService.java | 18 +++++---- .../services/dstore/files/DStoreHostFile.java | 2 +- .../DStoreFileSubSystemConfiguration.java | 40 ++++++++++++++++++- 6 files changed, 51 insertions(+), 50 deletions(-) diff --git a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/IDataStoreProvider.java b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/IDataStoreProvider.java index f13fad7ca82..6000a336d00 100644 --- a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/IDataStoreProvider.java +++ b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/IDataStoreProvider.java @@ -20,21 +20,4 @@ package org.eclipse.dstore.core.model; public interface IDataStoreProvider { public DataStore getDataStore(); - - /** - * Returns the upload buffer size preference. To be used by Dstore - * services to determine buffer size when uploading. - * - * @since 3.0 - */ - public int getBufferUploadSize(); - - /** - * Returns the download buffer size preference. To be used by - * Dstore services to determine buffer size when downloading. - * - * @since 3.0 - */ - public int getBufferDownloadSize(); - } \ No newline at end of file diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.connectorservice.dstore/META-INF/MANIFEST.MF index 07d3b8a18e3..650c68e7962 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/META-INF/MANIFEST.MF @@ -12,8 +12,7 @@ Require-Bundle: org.eclipse.ui, org.eclipse.dstore.core;bundle-version="[3.0.0,4.0.0)", org.eclipse.dstore.extra;bundle-version="[2.1.0,3.0.0)", org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)", - org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)", - org.eclipse.rse.subsystems.files.core;bundle-version="3.0.0" + org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)" Bundle-ActivationPolicy: lazy Eclipse-LazyStart: true Export-Package: diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java index 73b3d2dbf09..f34af702d9a 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java @@ -82,7 +82,6 @@ import org.eclipse.rse.internal.connectorservice.dstore.Activator; import org.eclipse.rse.internal.connectorservice.dstore.ConnectorServiceResources; import org.eclipse.rse.internal.connectorservice.dstore.IConnectorServiceMessageIds; import org.eclipse.rse.internal.connectorservice.dstore.RexecDstoreServer; -import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants; import org.eclipse.rse.internal.ui.SystemPropertyResources; import org.eclipse.rse.services.clientserver.messages.CommonMessages; import org.eclipse.rse.services.clientserver.messages.ICommonMessageIds; @@ -1461,25 +1460,5 @@ public class DStoreConnectorService extends StandardConnectorService implements return new SimpleSystemMessage(Activator.PLUGIN_ID, msgId, severity, msg, msgDetails); } - - public int getBufferUploadSize() - { - IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); - - int value = store.getInt(ISystemFilePreferencesConstants.UPLOAD_BUFFER_SIZE) * IUniversalDataStoreConstants.KB_IN_BYTES; - if (value == 0) - value = IUniversalDataStoreConstants.BUFFER_SIZE; - return value; - - } - - public int getBufferDownloadSize() - { - IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); - int value = store.getInt(ISystemFilePreferencesConstants.DOWNLOAD_BUFFER_SIZE) * IUniversalDataStoreConstants.KB_IN_BYTES; - if (value == 0) - value = IUniversalDataStoreConstants.BUFFER_SIZE; - return value; - } } diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java index 3e7dfcc4b6b..6ec8c542091 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java @@ -106,6 +106,10 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer protected org.eclipse.dstore.core.model.DataElement _uploadLogElement = null; protected Map _fileElementMap; protected Map _dstoreFileMap; + + private int _bufferUploadSize = IUniversalDataStoreConstants.BUFFER_SIZE; + private int _bufferDownloadSize = IUniversalDataStoreConstants.BUFFER_SIZE; + protected ISystemFileTypes _fileTypeRegistry; private String remoteEncoding; @@ -151,31 +155,29 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer /** * Set the buffer upload size * @param size the new size - * - * @deprecated no longer used - instead using the IDataStoreProvider */ public void setBufferUploadSize(int size) { + _bufferUploadSize = size; } /** * Set the buffer download size * @param size the new size - * - * @deprecated no longer used - instead using the IDataStoreProvider */ public void setBufferDownloadSize(int size) { + _bufferDownloadSize = size; } protected int getBufferUploadSize() { - return _dataStoreProvider.getBufferUploadSize(); + return _bufferUploadSize; } protected int getBufferDownloadSize() { - return _dataStoreProvider.getBufferDownloadSize(); + return _bufferDownloadSize; } protected String getMinerId() @@ -710,7 +712,7 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer argList.add(bufferSizeElement); DataElement subject = ds.createObject(universaltemp, de.getType(), remotePath, String.valueOf(mode)); -long t1 = System.currentTimeMillis(); +//long t1 = System.currentTimeMillis(); DataElement status = ds.command(queryCmd, argList, subject); if (status == null) { @@ -743,7 +745,7 @@ long t1 = System.currentTimeMillis(); return false; } - long t2 = System.currentTimeMillis(); + //long t2 = System.currentTimeMillis(); // System.out.println("time="+(t2 - t1)/1000); // now wait till we have all the bytes local long localBytes = localFile.length(); diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreHostFile.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreHostFile.java index 993f137f389..1cabc3154e6 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreHostFile.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreHostFile.java @@ -350,7 +350,7 @@ public class DStoreHostFile implements IHostFile, IHostFilePermissionsContainer return 0; } - protected static String getAttribute(String attributes, int index) + protected static String getAttribute(String attributes, int index) { if (attributes != null) { diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.dstore/src/org/eclipse/rse/subsystems/files/dstore/DStoreFileSubSystemConfiguration.java b/rse/plugins/org.eclipse.rse.subsystems.files.dstore/src/org/eclipse/rse/subsystems/files/dstore/DStoreFileSubSystemConfiguration.java index c4e42da46cf..aa2880c3cb0 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.dstore/src/org/eclipse/rse/subsystems/files/dstore/DStoreFileSubSystemConfiguration.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.dstore/src/org/eclipse/rse/subsystems/files/dstore/DStoreFileSubSystemConfiguration.java @@ -21,13 +21,19 @@ package org.eclipse.rse.subsystems.files.dstore; +import org.eclipse.core.runtime.Preferences; +import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; +import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.rse.connectorservice.dstore.DStoreConnectorService; import org.eclipse.rse.connectorservice.dstore.DStoreConnectorServiceManager; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.subsystems.IConnectorService; import org.eclipse.rse.core.subsystems.ISubSystem; +import org.eclipse.rse.dstore.universal.miners.IUniversalDataStoreConstants; import org.eclipse.rse.internal.services.dstore.files.DStoreFileService; import org.eclipse.rse.internal.services.dstore.search.DStoreSearchService; +import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants; import org.eclipse.rse.internal.subsystems.files.dstore.DStoreFileAdapter; import org.eclipse.rse.internal.subsystems.files.dstore.DStoreFileSubSystemSearchResultConfiguration; import org.eclipse.rse.internal.subsystems.files.dstore.DStoreLanguageUtilityFactory; @@ -43,6 +49,7 @@ import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSyst import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystemConfiguration; import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; +import org.eclipse.rse.ui.RSEUIPlugin; public class DStoreFileSubSystemConfiguration extends FileServiceSubSystemConfiguration { @@ -128,10 +135,41 @@ public class DStoreFileSubSystemConfiguration extends FileServiceSubSystemConfig public IFileService createFileService(IHost host) { + final IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); DStoreConnectorService connectorService = (DStoreConnectorService)getConnectorService(host); - DStoreFileService service = new DStoreFileService(connectorService, RemoteFileUtility.getSystemFileTransferModeRegistry()); + final DStoreFileService service = new DStoreFileService(connectorService, RemoteFileUtility.getSystemFileTransferModeRegistry()); service.setIsUnixStyle(isUnixStyle()); + + int dvalue = store.getInt(ISystemFilePreferencesConstants.DOWNLOAD_BUFFER_SIZE) * IUniversalDataStoreConstants.KB_IN_BYTES; + if (dvalue == 0) + dvalue = IUniversalDataStoreConstants.BUFFER_SIZE; + service.setBufferDownloadSize(dvalue); + + + int uvalue = store.getInt(ISystemFilePreferencesConstants.UPLOAD_BUFFER_SIZE) * IUniversalDataStoreConstants.KB_IN_BYTES; + if (uvalue == 0) + uvalue = IUniversalDataStoreConstants.BUFFER_SIZE; + service.setBufferUploadSize(uvalue); + + // Listen to preference changes + IPropertyChangeListener preferenceListener = new IPropertyChangeListener() { + public void propertyChange(PropertyChangeEvent event){ + String propertyName = event.getProperty(); + if (propertyName.equals(ISystemFilePreferencesConstants.DOWNLOAD_BUFFER_SIZE)){ + int value = Integer.parseInt((String)event.getNewValue()); + service.setBufferDownloadSize(value); + } + else if (propertyName.equals(ISystemFilePreferencesConstants.UPLOAD_BUFFER_SIZE)){ + int value = Integer.parseInt((String)event.getNewValue()); + service.setBufferDownloadSize(value); + } + } + }; + + Preferences pstore = RSEUIPlugin.getDefault().getPluginPreferences(); + pstore.addPropertyChangeListener(preferenceListener); + return service; }