mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-03 23:25:26 +02:00
[195402] Add tar.gz / tgz archive support
This commit is contained in:
parent
aefa292547
commit
9f7f23470b
17 changed files with 1285 additions and 953 deletions
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
|
||||
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
|
||||
|
@ -15,9 +15,9 @@ Contributors:
|
|||
Martin Oberhuber (Wind River) - [180519] declaratively register adapter factories
|
||||
Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||
Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util
|
||||
David McKnight (IBM) - [187711] Link with Editor action for System View
|
||||
David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files
|
||||
|
||||
David McKnight (IBM) - [187711] Link with Editor action for System View
|
||||
David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files
|
||||
Johnson Ma (Wind River) - [195402] Add tar.gz archive support
|
||||
-->
|
||||
<?eclipse version="3.0"?>
|
||||
<plugin>
|
||||
|
@ -308,6 +308,18 @@ David McKnight (IBM) - [209593] [api] add support for "file permissions
|
|||
class="org.eclipse.rse.services.clientserver.archiveutils.SystemJarHandler"
|
||||
id="org.eclipse.rse.services.clientserver.archiveutils.systemjarhandler">
|
||||
</archivehandler>
|
||||
<archivehandler
|
||||
fileNameExtension="tar.gz"
|
||||
name="SystemTargzHandler"
|
||||
class="org.eclipse.rse.services.clientserver.archiveutils.SystemTgzHandler"
|
||||
id="org.eclipse.rse.services.clientserver.archiveutils.systemtargzhandler">
|
||||
</archivehandler>
|
||||
<archivehandler
|
||||
fileNameExtension="tgz"
|
||||
name="SystemTgzHandler"
|
||||
class="org.eclipse.rse.services.clientserver.archiveutils.SystemTgzHandler"
|
||||
id="org.eclipse.rse.services.clientserver.archiveutils.systemtgzhandler">
|
||||
</archivehandler>
|
||||
<archivehandler
|
||||
fileNameExtension="tar"
|
||||
name="SystemTarHandler"
|
||||
|
|
|
@ -15,20 +15,21 @@
|
|||
* Martin Oberhuber (Wind River) - Fix 154874 - handle files with space or $ in the name
|
||||
* Xuan Chen (IBM) - Fix 160768 - [refresh][dstore] Refresh on renamed node within a zip does not work;
|
||||
* Xuan Chen (IBM) - Fix 189487 - copy and paste a folder did not work - workbench hang
|
||||
* Xuan Chen (IBM) - [189681] [dstore][linux] Refresh Folder in My Home messes up Refresh in Root
|
||||
* Xuan Chen (IBM) - [191280] [dstore] Expand fails for folder "/folk" with 3361 children
|
||||
* Xuan Chen (IBM) - [189681] [dstore][linux] Refresh Folder in My Home messes up Refresh in Root
|
||||
* Xuan Chen (IBM) - [191280] [dstore] Expand fails for folder "/folk" with 3361 children
|
||||
* Kevin Doyle (IBM) - [195709] Windows Copying doesn't work when path contains space
|
||||
* Kevin Doyle (IBM) - [196211] DStore Move tries rename if that fails copy/delete
|
||||
* Xuan Chen (IBM) - [198046] [dstore] Cannot copy a folder into an archive file
|
||||
* Xuan Chen (IBM) - [191367] with supertransfer on, Drag & Drop Folder from DStore to DStore doesn't work
|
||||
* Xuan Chen (IBM) - [198046] [dstore] Cannot copy a folder into an archive file
|
||||
* Xuan Chen (IBM) - [191367] with supertransfer on, Drag & Drop Folder from DStore to DStore doesn't work
|
||||
* Martin Oberhuber (Wind River) - [199548] Avoid touching files on setReadOnly() if unnecessary
|
||||
* Kevin Doyle (IBM) - [191548] Deleting Read-Only directory removes it from view and displays no error
|
||||
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
|
||||
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
|
||||
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
|
||||
* David McKnight (IBM) - [196624] dstore miner IDs should be String constants rather than dynamic lookup
|
||||
* David McKnight (IBM) - [196624] dstore miner IDs should be String constants rather than dynamic lookup
|
||||
* Xuan Chen (IBM) - [209827] Update DStore command implementation to enable cancelation of archive operations
|
||||
* Xuan Chen (IBM) - [194481] [dstore][Archive] Save Conflict After Renaming a File that is Open
|
||||
* David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files
|
||||
* David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files
|
||||
* Johnson Ma (Wind River) - [195402] Add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.dstore.universal.miners;
|
||||
|
@ -69,6 +70,7 @@ import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
|
|||
import org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler;
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.SystemJarHandler;
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.SystemTarHandler;
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.SystemTgzHandler;
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.SystemZipHandler;
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.VirtualChild;
|
||||
import org.eclipse.rse.services.clientserver.java.ClassFileUtil;
|
||||
|
@ -98,6 +100,8 @@ public class UniversalFileSystemMiner extends Miner {
|
|||
_archiveHandlerManager = ArchiveHandlerManager.getInstance();
|
||||
_archiveHandlerManager.setRegisteredHandler("zip", SystemZipHandler.class); //$NON-NLS-1$
|
||||
_archiveHandlerManager.setRegisteredHandler("jar", SystemJarHandler.class); //$NON-NLS-1$
|
||||
_archiveHandlerManager.setRegisteredHandler("tar.gz", SystemTgzHandler.class); //$NON-NLS-1$
|
||||
_archiveHandlerManager.setRegisteredHandler("tgz", SystemTgzHandler.class); //$NON-NLS-1$
|
||||
_archiveHandlerManager.setRegisteredHandler("tar", SystemTarHandler.class); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008 Wind River Systems, Inc. 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
|
||||
*
|
||||
* Contributors:
|
||||
* Johnson Ma (Wind River) - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.internal.services.clientserver.archiveutils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
import org.eclipse.rse.services.clientserver.archiveutils.TarFile;
|
||||
|
||||
/**
|
||||
* This class is used to read entries from tar.gz file
|
||||
* It read compressed data from GZIPInputStream
|
||||
*/
|
||||
public class TgzFile extends TarFile {
|
||||
|
||||
/**
|
||||
* Opens a tar.gz file for reading given the specified File object.
|
||||
* @param file the tar.gz file to be opened for reading.
|
||||
* @throws FileNotFoundException if the file does not exist.
|
||||
* @throws IOException if an I/O error occurs.
|
||||
*/
|
||||
public TgzFile(File file) throws FileNotFoundException, IOException {
|
||||
super(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a tar.gz file for reading given the file name.
|
||||
* @param name the name of the tar file to be opened for reading.
|
||||
* @throws FileNotFoundException if the file with the given name does not exist.
|
||||
* @throws IOException if an I/O error occurs.
|
||||
*/
|
||||
public TgzFile(String name) throws FileNotFoundException, IOException {
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the input stream for the tar.gz file.
|
||||
* Get file input steam from superclass, wrap it using GZipInputSteam
|
||||
* @return the input stream for the tar file.
|
||||
* @throws FileNotFoundException if the file does not exist.
|
||||
*/
|
||||
protected InputStream getInputStream() throws FileNotFoundException {
|
||||
InputStream fileInputStream = super.getInputStream();
|
||||
GZIPInputStream zipInputStream = null;
|
||||
try{
|
||||
zipInputStream = new GZIPInputStream(fileInputStream);
|
||||
} catch (IOException ioe) {
|
||||
//in that case, the file doesn't exists yet. return the file input stream from base class
|
||||
return fileInputStream;
|
||||
}
|
||||
return zipInputStream;
|
||||
}
|
||||
|
||||
}
|
|
@ -12,11 +12,11 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* {Name} (company) - description of contribution.
|
||||
* Xuan Chen (IBM) - [194293] [Local][Archives] Saving file second time in an Archive Errors
|
||||
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
|
||||
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
|
||||
* Xuan Chen (IBM) - [218491] ArchiveHandlerManager#cleanUpVirtualPath is messing up the file separators (with updated fix)
|
||||
* Xuan Chen (IBM) - [194293] [Local][Archives] Saving file second time in an Archive Errors
|
||||
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
|
||||
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
|
||||
* Xuan Chen (IBM) - [218491] ArchiveHandlerManager#cleanUpVirtualPath is messing up the file separators (with updated fix)
|
||||
* Johnson Ma (Wind River) - [195402] [api] add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.services.clientserver.archiveutils;
|
||||
|
@ -25,6 +25,7 @@ import java.io.IOException;
|
|||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* This class manages all the Archive Handlers that correspond to the archive file that the system
|
||||
|
@ -40,6 +41,7 @@ public class ArchiveHandlerManager
|
|||
public static final String VIRTUAL_SEPARATOR = "#virtual#/"; //$NON-NLS-1$
|
||||
public static final String VIRTUAL_CANONICAL_SEPARATOR = "#virtual#"; //$NON-NLS-1$
|
||||
public static final String VIRTUAL_FOLDER_SEPARATOR = "/"; //$NON-NLS-1$
|
||||
public static final String EXTENSION_SEPARATOR = "."; //$NON-NLS-1$
|
||||
|
||||
// the singleton instance
|
||||
protected static ArchiveHandlerManager _instance = new ArchiveHandlerManager();
|
||||
|
@ -116,7 +118,7 @@ public class ArchiveHandlerManager
|
|||
}
|
||||
else
|
||||
{
|
||||
if (_handlerTypes.containsKey(getExtension(file)))
|
||||
if (getRegisteredExtension(file)!=null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -136,20 +138,50 @@ public class ArchiveHandlerManager
|
|||
*/
|
||||
public boolean isRegisteredArchive(String filename)
|
||||
{
|
||||
if (_handlerTypes.containsKey(getExtension(filename)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return getRegisteredExtension(filename) == null?false:true;
|
||||
}
|
||||
|
||||
/**
|
||||
* check if the file extension is registered archive type.
|
||||
* notice here, the getExtension method does't work for name like fool.tar.gz
|
||||
* @param file the file to check
|
||||
* @return registered extension or null
|
||||
* @since 3.0
|
||||
*/
|
||||
protected String getRegisteredExtension(File file)
|
||||
{
|
||||
String fileName = file.getName();
|
||||
return getRegisteredExtension(fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
* check if the file extension is registered archive type.
|
||||
* @param fileName the file name to check
|
||||
* @return registered extension or null
|
||||
* @since 3.0
|
||||
*/
|
||||
protected String getRegisteredExtension(String fileName)
|
||||
{
|
||||
fileName = fileName.toLowerCase();
|
||||
Iterator itor = _handlerTypes.keySet().iterator();
|
||||
while(itor.hasNext())
|
||||
{
|
||||
String ext = ((String)itor.next()).toLowerCase();
|
||||
if (fileName.endsWith(EXTENSION_SEPARATOR + ext))
|
||||
{
|
||||
return ext;
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param file the file whose extension we are computing.
|
||||
* @return the extension of <code>file</code>. "Extension" is
|
||||
* defined as any letters in the filename after the last ".".
|
||||
* Returns "" if there is no extension.
|
||||
* @deprecated Use {@link #getRegisteredExtension(File)} instead
|
||||
*/
|
||||
protected String getExtension(File file)
|
||||
{
|
||||
|
@ -159,11 +191,13 @@ public class ArchiveHandlerManager
|
|||
return filename.substring(i+1).toLowerCase();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param filename the name of the file whose extension we are computing.
|
||||
* @return the extension of <code>filename</code>. "Extension" is
|
||||
* defined as any letters in the filename after the last ".".
|
||||
* Returns "" if there is no extension.
|
||||
* * @deprecated Use {@link #getRegisteredExtension(String)} instead
|
||||
*/
|
||||
protected String getExtension(String filename)
|
||||
{
|
||||
|
@ -212,10 +246,9 @@ public class ArchiveHandlerManager
|
|||
}
|
||||
else {
|
||||
// find registered handler based on file's extension
|
||||
String ext = getExtension(file);
|
||||
if (!_handlerTypes.containsKey(ext))
|
||||
String ext = getRegisteredExtension(file);
|
||||
if (ext == null)
|
||||
{
|
||||
//System.out.println("Unknown archive file type: " + ext);
|
||||
return null;
|
||||
}
|
||||
else
|
||||
|
@ -375,7 +408,7 @@ public class ArchiveHandlerManager
|
|||
//need to process it.
|
||||
//But virtual path should neither start with "\", nor contains
|
||||
//":". So for those two cases, we could just return the fullVirtualName
|
||||
if (fullVirtualName.indexOf(":") != -1 || fullVirtualName.trim().startsWith("\\"))
|
||||
if (fullVirtualName.indexOf(":") != -1 || fullVirtualName.trim().startsWith("\\")) //$NON-NLS-1$ //$NON-NLS-2$
|
||||
{
|
||||
return fullVirtualName;
|
||||
}
|
||||
|
|
|
@ -12,16 +12,17 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* Xuan Chen (IBM) - [194293] [Local][Archives] Saving file second time in an Archive Errors
|
||||
* Xuan Chen (IBM) - [199132] [Archives-TAR][Local-Windows] Can't open files in tar archives
|
||||
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
|
||||
* Xuan Chen (IBM) - [209828] Need to move the Create operation to a job.
|
||||
* Xuan Chen (IBM) - [209825] Update SystemTarHandler so that archive operations could be cancelable.
|
||||
* Xuan Chen (IBM) - [211551] NPE when moving multiple folders from one tar file to another tar file
|
||||
* Xuan Chen (IBM) - [211653] Copy virtual directory with nested directory of tar file did not work
|
||||
* Xuan Chen (IBM) - [214251] [archive] "Last Modified Time" changed for all virtual files/folders if rename/paste/delete of one virtual file.
|
||||
* Xuan Chen (IBM) - [191370] [dstore] Supertransfer zip not deleted when cancelling copy
|
||||
* Xuan Chen (IBM) - [api] SystemTarHandler has inconsistent API
|
||||
* Xuan Chen (IBM) - [194293] [Local][Archives] Saving file second time in an Archive Errors
|
||||
* Xuan Chen (IBM) - [199132] [Archives-TAR][Local-Windows] Can't open files in tar archives
|
||||
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
|
||||
* Xuan Chen (IBM) - [209828] Need to move the Create operation to a job.
|
||||
* Xuan Chen (IBM) - [209825] Update SystemTarHandler so that archive operations could be cancelable.
|
||||
* Xuan Chen (IBM) - [211551] NPE when moving multiple folders from one tar file to another tar file
|
||||
* Xuan Chen (IBM) - [211653] Copy virtual directory with nested directory of tar file did not work
|
||||
* Xuan Chen (IBM) - [214251] [archive] "Last Modified Time" changed for all virtual files/folders if rename/paste/delete of one virtual file.
|
||||
* Xuan Chen (IBM) - [191370] [dstore] Supertransfer zip not deleted when cancelling copy
|
||||
* Xuan Chen (IBM) - [api] SystemTarHandler has inconsistent API
|
||||
* Johnson Ma (Wind River) - [195402][api] Add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.services.clientserver.archiveutils;
|
||||
|
@ -30,6 +31,7 @@ import java.io.BufferedInputStream;
|
|||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FilePermission;
|
||||
import java.io.IOException;
|
||||
|
@ -1228,7 +1230,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
|
||||
// open a new temp file which will be our destination for the new tar file
|
||||
outputTempFile = new File(file.getAbsolutePath() + "temp"); //$NON-NLS-1$
|
||||
outStream = new TarOutputStream(new FileOutputStream(outputTempFile));
|
||||
outStream = getTarOutputStream(outputTempFile);
|
||||
|
||||
// get all the entries in the current tar
|
||||
VirtualChild[] children = getVirtualChildrenList(archiveOperationMonitor);
|
||||
|
@ -1669,7 +1671,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
// open a new temp file which will be our destination for the new tar file
|
||||
File outputTempFile = new File(getArchive().getAbsolutePath() + "temp"); //$NON-NLS-1$
|
||||
|
||||
TarOutputStream outStream = new TarOutputStream(new FileOutputStream(outputTempFile));
|
||||
TarOutputStream outStream = getTarOutputStream(outputTempFile);
|
||||
|
||||
// get all the entries
|
||||
VirtualChild[] children = getVirtualChildrenList(archiveOperationMonitor);
|
||||
|
@ -1778,7 +1780,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
|
||||
// open a new temp file which will be our destination for the new tar file
|
||||
outputTempFile = new File(file.getAbsolutePath() + "temp"); //$NON-NLS-1$
|
||||
TarOutputStream outStream = new TarOutputStream(new FileOutputStream(outputTempFile));
|
||||
TarOutputStream outStream = getTarOutputStream(outputTempFile);
|
||||
|
||||
// get all the entries in the current tar
|
||||
VirtualChild[] children = getVirtualChildrenList(archiveOperationMonitor);
|
||||
|
@ -1905,7 +1907,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
|
||||
// open a new temp file which will be our destination for the new tar file
|
||||
outputTempFile = new File(file.getAbsolutePath() + "temp"); //$NON-NLS-1$
|
||||
TarOutputStream outStream = new TarOutputStream(new FileOutputStream(outputTempFile));
|
||||
TarOutputStream outStream = getTarOutputStream(outputTempFile);
|
||||
|
||||
// get all the entries
|
||||
VirtualChild[] children = getVirtualChildrenList(archiveOperationMonitor);
|
||||
|
@ -2192,7 +2194,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
|
||||
// open a new temp file which will be our destination for the new tar file
|
||||
outputTempFile = new File(file.getAbsolutePath() + "temp"); //$NON-NLS-1$
|
||||
outStream = new TarOutputStream(new FileOutputStream(outputTempFile));
|
||||
outStream = getTarOutputStream(outputTempFile);
|
||||
|
||||
// get all the entries
|
||||
VirtualChild[] children = getVirtualChildrenList(archiveOperationMonitor);
|
||||
|
@ -2343,7 +2345,7 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
try {
|
||||
|
||||
// create output stream
|
||||
TarOutputStream outStream = new TarOutputStream(new FileOutputStream(file));
|
||||
TarOutputStream outStream = getTarOutputStream(file);
|
||||
|
||||
// close output stream, so we have an empty tar file
|
||||
outStream.close();
|
||||
|
@ -2609,4 +2611,17 @@ public class SystemTarHandler implements ISystemArchiveHandler {
|
|||
archiveOperationMonitor.setDone(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the tar output stream for a given file.
|
||||
* This method can be overridden by subclass to return compressed output steam if needed.
|
||||
* @param outputFile the output file to create stream
|
||||
* @return OutputStream the output stream to write
|
||||
* @throws FileNotFoundException when the output file doesn't exists
|
||||
* @since 3.0
|
||||
*/
|
||||
protected TarOutputStream getTarOutputStream(File outputFile) throws FileNotFoundException {
|
||||
TarOutputStream outStream = new TarOutputStream(new FileOutputStream(outputFile));
|
||||
return outStream;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008 Wind River Systems, Inc. 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
|
||||
*
|
||||
* Contributors:
|
||||
* Johnson Ma (Wind River) - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.services.clientserver.archiveutils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import org.eclipse.rse.internal.services.clientserver.archiveutils.TarOutputStream;
|
||||
import org.eclipse.rse.internal.services.clientserver.archiveutils.TgzFile;
|
||||
|
||||
/**
|
||||
* handler class for .tar.gz and .tgz files
|
||||
*/
|
||||
public class SystemTgzHandler extends SystemTarHandler {
|
||||
|
||||
/**
|
||||
* constructor for the tgz handler
|
||||
* @param file the .tar.gz or .tgz file
|
||||
*/
|
||||
public SystemTgzHandler(File file) throws IOException {
|
||||
super(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a tar.gz file from the underlying file.
|
||||
* @return the tar file, or <code>null</code> if the tar file does not exist.
|
||||
*/
|
||||
protected TarFile getTarFile() {
|
||||
|
||||
TarFile tarFile = null;
|
||||
|
||||
try {
|
||||
tarFile = new TgzFile(file);
|
||||
}
|
||||
catch (IOException e) {
|
||||
// TODO: log error
|
||||
}
|
||||
|
||||
return tarFile;
|
||||
}
|
||||
|
||||
protected TarOutputStream getTarOutputStream(File outputFile) throws FileNotFoundException {
|
||||
GZIPOutputStream zipOutputStream = null;
|
||||
try{
|
||||
zipOutputStream = new GZIPOutputStream(new FileOutputStream(outputFile));
|
||||
} catch (IOException ioe) {
|
||||
throw new FileNotFoundException(ioe.getMessage());
|
||||
}
|
||||
TarOutputStream outStream = new TarOutputStream(zipOutputStream);
|
||||
return outStream;
|
||||
}
|
||||
}
|
|
@ -1389,8 +1389,8 @@ public class SystemZipHandler implements ISystemArchiveHandler
|
|||
* @param dest The ZipOutputStream representing the zip file where the
|
||||
* children are to be recreated
|
||||
* @param omitChildren The set of names of children to omit when creating
|
||||
* the zipfile. Null or empty set if there are no ommisions.
|
||||
* @throws IOException
|
||||
* the zipfile. Null or empty set if there are no omissions.
|
||||
* @throws IOException in case of a file I/O error
|
||||
*/
|
||||
protected boolean recreateZipDeleteEntries(VirtualChild[] vcList, ZipOutputStream dest, HashSet omitChildren, ISystemOperationMonitor archiveOperationMonitor) throws IOException
|
||||
{
|
||||
|
@ -2563,8 +2563,9 @@ public class SystemZipHandler implements ISystemArchiveHandler
|
|||
return ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler#isExecutable(java.lang.String)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler#getClassification(java.lang.String)
|
||||
*/
|
||||
public String getClassification(String fullVirtualName) {
|
||||
return getClassification(fullVirtualName, true);
|
||||
|
@ -2573,7 +2574,7 @@ public class SystemZipHandler implements ISystemArchiveHandler
|
|||
/**
|
||||
* Same as getClassification(String), but you can choose whether to leave the zip file
|
||||
* open after the method is closed.
|
||||
* @see org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler#isExecutable(java.lang.String)
|
||||
* @see org.eclipse.rse.services.clientserver.archiveutils.ISystemArchiveHandler#getClassification(java.lang.String)
|
||||
*/
|
||||
public String getClassification(String fullVirtualName, boolean closeZipFile) {
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* {Name} (company) - description of contribution.
|
||||
* Xuan Chen (IBM) - [api] SystemTarHandler has inconsistent API
|
||||
* Johnson Ma (Wind River) - [195402] Add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.rse.services.clientserver.archiveutils;
|
||||
|
@ -197,8 +197,9 @@ public class TarFile {
|
|||
* Gets the input stream for the tar file.
|
||||
* @return the input stream for the tar file.
|
||||
* @throws FileNotFoundException if the file does not exist.
|
||||
* @since 3.0
|
||||
*/
|
||||
private InputStream getInputStream() throws FileNotFoundException {
|
||||
protected InputStream getInputStream() throws FileNotFoundException {
|
||||
FileInputStream stream = new FileInputStream(file);
|
||||
return stream;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - [cleanup] Avoid using SystemStartHere in production code
|
||||
* Martin Oberhuber (Wind River) - organize, enable and tag test cases
|
||||
* Martin Oberhuber (Wind River) - [195402] Add constructor with test name
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
@ -34,7 +35,15 @@ public class CreateFileTestCase extends FileServiceBaseTest {
|
|||
// File Dialog. This string can be so using this for base test.
|
||||
private String fileName = "a !@#${a}'%^&()_ =[]~+-'`;,.txt"; //$NON-NLS-1$
|
||||
private IRemoteFile tempDirectory = null;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public CreateFileTestCase(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
private IRemoteFileSubSystem getRemoteFileSubSystem(IHost host) {
|
||||
IRemoteFileSubSystem fss = null;
|
||||
ISystemRegistry sr = SystemStartHere.getSystemRegistry();
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - [cleanup] Avoid using SystemStartHere in production code
|
||||
* Martin Oberhuber (Wind River) - organize, enable and tag test cases
|
||||
* Martin Oberhuber (Wind River) - [195402] Add constructor with test name
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
@ -37,7 +38,15 @@ public class FileOutputStreamTestCase extends FileServiceBaseTest {
|
|||
|
||||
private IHost host = null;
|
||||
private IRemoteFile tempDirectory;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileOutputStreamTestCase(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
private IRemoteFileSubSystem getRemoteFileSubSystem(IHost host) {
|
||||
IRemoteFileSubSystem fss = null;
|
||||
ISystemRegistry sr = SystemStartHere.getSystemRegistry();
|
||||
|
|
|
@ -0,0 +1,945 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2007, 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
|
||||
*
|
||||
* Contributors:
|
||||
* Johnson Ma (Wind River) - [195402] Extracted from FileServiceArchiveTest
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.eclipse.core.filesystem.EFS;
|
||||
import org.eclipse.core.filesystem.IFileStore;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.rse.core.model.ISystemResourceSet;
|
||||
import org.eclipse.rse.core.model.SystemRemoteResourceSet;
|
||||
import org.eclipse.rse.core.model.SystemWorkspaceResourceSet;
|
||||
import org.eclipse.rse.core.subsystems.ISystemDragDropAdapter;
|
||||
import org.eclipse.rse.files.ui.resources.UniversalFileTransferUtility;
|
||||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
||||
import org.eclipse.rse.tests.RSETestsPlugin;
|
||||
|
||||
public abstract class FileServiceArchiveBaseTest extends FileServiceBaseTest {
|
||||
|
||||
protected String folderToCopyName1 = "RemoteSystemsConnections";
|
||||
protected String folderToCopyName2 = "6YLT5Xa";
|
||||
protected String folderToCopyName3 = "folderToCopy";
|
||||
|
||||
protected String tarSourceFileName1;
|
||||
protected String tarSourceFileName2;
|
||||
|
||||
protected String tarSourceFolderName1 = "META-INF";
|
||||
protected String tarSourceFolderName2 = "org";
|
||||
|
||||
protected String tarSourceForOpenTest;
|
||||
protected String tarSourceForOpenFolderName1 = "META-INF";
|
||||
protected String tarSourceForOpenFolderName2 = "org";
|
||||
|
||||
protected String testName;
|
||||
|
||||
protected String fileContentString1 = "this is just some dummy content \n to a remote file \n to test an open operation";
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileServiceArchiveBaseTest(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public static IWorkspace getWorkspace() {
|
||||
return ResourcesPlugin.getWorkspace();
|
||||
}
|
||||
|
||||
public void createSourceFolders() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
// create the source folder used for copy or move
|
||||
IFileStore folderToCopy = temp.getChild(folderToCopyName3);
|
||||
createDir(folderToCopy, true);
|
||||
//Now, populate the contents in the folderToCopy.
|
||||
IFileStore aaaaaaaa = folderToCopy.getChild("aaaaaaaa");
|
||||
createDir(aaaaaaaa, true);
|
||||
//create file inside the aaaaaaaa folder.
|
||||
IFileStore adsf = aaaaaaaa.getChild("adsf");
|
||||
content = getRandomString();
|
||||
createFile(adsf, content);
|
||||
IFileStore eclipse_SDK_3_3M6_win32_zip = aaaaaaaa.getChild("eclipse-SDK-3.3M6-win32.zip");
|
||||
createFile(eclipse_SDK_3_3M6_win32_zip, "");
|
||||
IFileStore epdcdump01_hex12 = aaaaaaaa.getChild("epdcdump01.hex12");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12, content);
|
||||
IFileStore epdcdump01_hex12aaaa = aaaaaaaa.getChild("epdcdump01.hex12aaaa");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12aaaa, content);
|
||||
|
||||
IFileStore aaaab = folderToCopy.getChild("aaaab");
|
||||
createDir(aaaab, true);
|
||||
IFileStore features = aaaab.getChild("features");
|
||||
createDir(features, true);
|
||||
IFileStore dummyFile = features.getChild("dummy.txt");
|
||||
content = getRandomString();
|
||||
createFile(dummyFile, content);
|
||||
//create file inside the aaaab folder.
|
||||
content = "this is just a simple content \n to a simple file \n to test a 'simple' copy";
|
||||
IFileStore epdcdump01_hex12a = aaaab.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a, content);
|
||||
|
||||
IFileStore epdcdump01_hex12a1 = folderToCopy.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a1, content);
|
||||
|
||||
IFileStore RSE_SDK_2_0RC1_zip = folderToCopy.getChild("RSE-SDK-2.0RC1.zip");
|
||||
content = getRandomString();
|
||||
createFile(RSE_SDK_2_0RC1_zip, content);
|
||||
|
||||
//now, copy folderToCopy into the folder in the remote system
|
||||
IRemoteFile sourceFolderToCopy3 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName3, mon);
|
||||
ISystemDragDropAdapter srcAdapter3 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy3).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter3);
|
||||
fromSet3.addResource(sourceFolderToCopy3);
|
||||
ISystemResourceSet tempObjects3 = srcAdapter3.doDrag(fromSet3, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects3, tempDir, mon, true);
|
||||
|
||||
//Then, we need to retrieve children of the tempDir to cache their information.
|
||||
fss.resolveFilterString(tempDir, null, mon);
|
||||
|
||||
//Then, delete the temp folder in the junit workspace.
|
||||
temp.delete(EFS.NONE, mon);
|
||||
}
|
||||
|
||||
|
||||
protected void createSuperTransferFolder(IFileStore temp) throws Exception
|
||||
{
|
||||
|
||||
String content = getRandomString();
|
||||
|
||||
// create the source folder used for copy or move
|
||||
IFileStore folderToCopy = temp.getChild(folderToCopyName3);
|
||||
createDir(folderToCopy, true);
|
||||
//Now, populate the contents in the folderToCopy.
|
||||
IFileStore aaaaaaaa = folderToCopy.getChild("aaaaaaaa");
|
||||
createDir(aaaaaaaa, true);
|
||||
//create file inside the aaaaaaaa folder.
|
||||
IFileStore adsf = aaaaaaaa.getChild("adsf");
|
||||
content = getRandomString();
|
||||
createFile(adsf, content);
|
||||
IFileStore eclipse_SDK_3_3M6_win32_zip = aaaaaaaa.getChild("eclipse-SDK-3.3M6-win32.zip");
|
||||
createFile(eclipse_SDK_3_3M6_win32_zip, "");
|
||||
IFileStore epdcdump01_hex12 = aaaaaaaa.getChild("epdcdump01.hex12");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12, content);
|
||||
IFileStore epdcdump01_hex12aaaa = aaaaaaaa.getChild("epdcdump01.hex12aaaa");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12aaaa, content);
|
||||
|
||||
IFileStore aaaab = folderToCopy.getChild("aaaab");
|
||||
createDir(aaaab, true);
|
||||
IFileStore features = aaaab.getChild("features");
|
||||
createDir(features, true);
|
||||
IFileStore dummyFile = features.getChild("dummy.txt");
|
||||
content = getRandomString();
|
||||
createFile(dummyFile, content);
|
||||
//create file inside the aaaab folder.
|
||||
content = "this is just a simple content \n to a simple file \n to test a 'simple' copy";
|
||||
IFileStore epdcdump01_hex12a = aaaab.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a, content);
|
||||
|
||||
IFileStore epdcdump01_hex12a1 = folderToCopy.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a1, content);
|
||||
|
||||
IFileStore RSE_SDK_2_0RC1_zip = folderToCopy.getChild("RSE-SDK-2.0RC1.zip");
|
||||
content = getRandomString();
|
||||
createFile(RSE_SDK_2_0RC1_zip, content);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
public void createTarSourceForOpen() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
//Now, we need to construct a "source.tar" archive file
|
||||
//We will construct the content of the tar file in folders "META-INF" and "org"
|
||||
//Then we copy this folder into a tar file by RSE API.
|
||||
IFileStore META_INF = temp.getChild(tarSourceForOpenFolderName1);
|
||||
createDir(META_INF, true);
|
||||
//Now, populate the contents in the folder.
|
||||
IFileStore MANIFEST_MF = META_INF.getChild("MANIFEST.MF");
|
||||
content = fileContentString1;
|
||||
createFile(MANIFEST_MF, content);
|
||||
|
||||
//create folder "org"
|
||||
IFileStore org = temp.getChild("org");
|
||||
createDir(org, true);
|
||||
IFileStore eclipse = org.getChild("eclipse");
|
||||
createDir(eclipse, true);
|
||||
//create "dstore" folder inside "org"
|
||||
IFileStore dstore = eclipse.getChild("dstore");
|
||||
createDir(dstore, true);
|
||||
//Now, create a few folders inside the dstore folder.
|
||||
IFileStore core = dstore.getChild("core");
|
||||
createDir(core, true);
|
||||
IFileStore internal = dstore.getChild("internal");
|
||||
createDir(internal, true);
|
||||
|
||||
//now create directory inside "core":
|
||||
IFileStore client = core.getChild("client");
|
||||
createDir(client, true);
|
||||
IFileStore java = core.getChild("java");
|
||||
createDir(java, true);
|
||||
IFileStore miners = core.getChild("miners");
|
||||
createDir(miners, true);
|
||||
IFileStore model = core.getChild("model");
|
||||
createDir(model, true);
|
||||
IFileStore server = core.getChild("server");
|
||||
createDir(server, true);
|
||||
IFileStore util = core.getChild("util");
|
||||
createDir(util, true);
|
||||
IFileStore Activator_java = core.getChild("Activator.java");
|
||||
content = fileContentString1;
|
||||
createFile(Activator_java, content);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java = client.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java, content);
|
||||
IFileStore ConnectionStatus_java = client.getChild("ConnectionStatus.java");
|
||||
content = fileContentString1;
|
||||
createFile(ConnectionStatus_java, content);
|
||||
|
||||
//now, some contents in java folder
|
||||
IFileStore ClassByteStreamHandler$ReceiveClassInstanceThread_java = java.getChild("ClassByteStreamHandler$ReceiveClassInstanceThread.java");
|
||||
content = getRandomString();
|
||||
createFile(ClassByteStreamHandler$ReceiveClassInstanceThread_java, content);
|
||||
|
||||
//now, some contents in miners folder
|
||||
IFileStore Miner_java = miners.getChild("Miner.java");
|
||||
content = getRandomString();
|
||||
createFile(Miner_java, content);
|
||||
IFileStore MinerThread_java = miners.getChild("MinerThread.java");
|
||||
content = getRandomString();
|
||||
createFile(MinerThread_java, content);
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java = model.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java, content);
|
||||
IFileStore DE_java = model.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java, content);
|
||||
IFileStore Handler_java = model.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java = server.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java = util.getChild("StringCompare.java");
|
||||
content = fileContentString1;
|
||||
createFile(StringCompare_java, content);
|
||||
|
||||
//now, create the contents in "internal" folder
|
||||
IFileStore core1 = internal.getChild("core");
|
||||
createDir(core1, true);
|
||||
|
||||
//then create some folder in this "core" folder
|
||||
IFileStore client1 = core1.getChild("client");
|
||||
createDir(client1, true);
|
||||
IFileStore model1 = core1.getChild("model");
|
||||
createDir(model1, true);
|
||||
IFileStore server1 = core1.getChild("server");
|
||||
createDir(server1, true);
|
||||
IFileStore util1 = core1.getChild("util");
|
||||
createDir(util1, true);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java1 = client1.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java1, content);
|
||||
IFileStore ConnectionStatus_java1 = client1.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java1, content);
|
||||
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java1 = model1.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java1, content);
|
||||
IFileStore DE_java1 = model1.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java1, content);
|
||||
IFileStore Handler_java1 = model1.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java1, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java1 = server1.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java1, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java1 = util1.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java1, content);
|
||||
|
||||
//now, copy META_INF into the folder in the remote system
|
||||
IRemoteFile META_INF_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceForOpenFolderName1, mon);
|
||||
assertNotNull(META_INF_folder);
|
||||
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) META_INF_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
|
||||
fromSet.addResource(META_INF_folder);
|
||||
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
|
||||
|
||||
//now, copy org into the folder in the remote system
|
||||
IRemoteFile org_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceForOpenFolderName2, mon);
|
||||
assertNotNull(org_folder);
|
||||
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) org_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
|
||||
fromSet2.addResource(org_folder);
|
||||
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
|
||||
|
||||
//now, create tar file in the host
|
||||
IRemoteFile tarSource = createFileOrFolder(tempDir.getAbsolutePath(), tarSourceForOpenTest, false);
|
||||
assertNotNull(tarSource);
|
||||
IRemoteFile tarSourceFolder1 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceForOpenFolderName1);
|
||||
assertNotNull(tarSourceFolder1);
|
||||
IRemoteFile tarSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceForOpenFolderName2);
|
||||
fss.copy(tarSourceFolder1, tarSource, tarSourceForOpenFolderName1, mon);
|
||||
fss.copy(tarSourceFolder2, tarSource, tarSourceForOpenFolderName2, mon);
|
||||
|
||||
//Then, we need to retrieve children of the tempDir to cache their information.
|
||||
fss.resolveFilterString(tempDir, null, mon);
|
||||
|
||||
//Then, delete the temp folder in the junit workspace.
|
||||
temp.delete(EFS.NONE, mon);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void createSourceTarFiles() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
//Now, we need to construct a "source.tar" archive file
|
||||
//We will construct the content of the tar file in folders "META-INF" and "org"
|
||||
//Then we copy this folder into a tar file by RSE API.
|
||||
IFileStore META_INF = temp.getChild(tarSourceFolderName1);
|
||||
createDir(META_INF, true);
|
||||
//Now, populate the contents in the folder.
|
||||
IFileStore MANIFEST_MF = META_INF.getChild("MANIFEST.MF");
|
||||
content = getRandomString();
|
||||
createFile(MANIFEST_MF, content);
|
||||
//create folder "org"
|
||||
IFileStore org = temp.getChild(tarSourceFolderName2);
|
||||
createDir(org, true);
|
||||
IFileStore eclipse = org.getChild("eclipse");
|
||||
createDir(eclipse, true);
|
||||
//create "dstore" folder inside "org"
|
||||
IFileStore dstore = eclipse.getChild("dstore");
|
||||
createDir(dstore, true);
|
||||
//Now, create a few folders inside the dstore folder.
|
||||
IFileStore core = dstore.getChild("core");
|
||||
createDir(core, true);
|
||||
IFileStore internal = dstore.getChild("internal");
|
||||
createDir(internal, true);
|
||||
|
||||
//now create directory inside "core":
|
||||
IFileStore client = core.getChild("client");
|
||||
createDir(client, true);
|
||||
IFileStore java = core.getChild("java");
|
||||
createDir(java, true);
|
||||
IFileStore miners = core.getChild("miners");
|
||||
createDir(miners, true);
|
||||
IFileStore model = core.getChild("model");
|
||||
createDir(model, true);
|
||||
IFileStore server = core.getChild("server");
|
||||
createDir(server, true);
|
||||
IFileStore util = core.getChild("util");
|
||||
createDir(util, true);
|
||||
IFileStore Activator_java = core.getChild("Activator.java");
|
||||
content = getRandomString();
|
||||
createFile(Activator_java, content);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java = client.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java, content);
|
||||
IFileStore ConnectionStatus_java = client.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java, content);
|
||||
|
||||
//now, some contents in java folder
|
||||
IFileStore ClassByteStreamHandler$ReceiveClassInstanceThread_java = java.getChild("ClassByteStreamHandler$ReceiveClassInstanceThread.java");
|
||||
content = getRandomString();
|
||||
createFile(ClassByteStreamHandler$ReceiveClassInstanceThread_java, content);
|
||||
|
||||
//now, some contents in miners folder
|
||||
IFileStore Miner_java = miners.getChild("Miner.java");
|
||||
content = getRandomString();
|
||||
createFile(Miner_java, content);
|
||||
IFileStore MinerThread_java = miners.getChild("MinerThread.java");
|
||||
content = getRandomString();
|
||||
createFile(MinerThread_java, content);
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java = model.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java, content);
|
||||
IFileStore DE_java = model.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java, content);
|
||||
IFileStore Handler_java = model.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java = server.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java = util.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java, content);
|
||||
|
||||
//now, create the contents in "internal" folder
|
||||
IFileStore core1 = internal.getChild("core");
|
||||
createDir(core1, true);
|
||||
|
||||
//then create some folder in this "core" folder
|
||||
IFileStore client1 = core1.getChild("client");
|
||||
createDir(client1, true);
|
||||
IFileStore model1 = core1.getChild("model");
|
||||
createDir(model1, true);
|
||||
IFileStore server1 = core1.getChild("server");
|
||||
createDir(server1, true);
|
||||
IFileStore util1 = core1.getChild("util");
|
||||
createDir(util1, true);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java1 = client1.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java1, content);
|
||||
IFileStore ConnectionStatus_java1 = client1.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java1, content);
|
||||
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java1 = model1.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java1, content);
|
||||
IFileStore DE_java1 = model1.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java1, content);
|
||||
IFileStore Handler_java1 = model1.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java1, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java1 = server1.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java1, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java1 = util1.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java1, content);
|
||||
|
||||
//now, copy META_INF into the folder in the remote system
|
||||
IRemoteFile META_INF_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName1, mon);
|
||||
assertNotNull(META_INF_folder);
|
||||
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) META_INF_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
|
||||
fromSet.addResource(META_INF_folder);
|
||||
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
|
||||
|
||||
//now, copy org into the folder in the remote system
|
||||
IRemoteFile org_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName2, mon);
|
||||
assertNotNull(org_folder);
|
||||
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) org_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
|
||||
fromSet2.addResource(org_folder);
|
||||
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
|
||||
|
||||
//now, create tar file in the host
|
||||
IRemoteFile tarSource = createFileOrFolder(tempDir.getAbsolutePath(), tarSourceFileName1, false);
|
||||
assertNotNull(tarSource);
|
||||
IRemoteFile tarSourceFolder1 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName1);
|
||||
assertNotNull(tarSourceFolder1);
|
||||
IRemoteFile tarSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName2);
|
||||
fss.copy(tarSourceFolder1, tarSource, tarSourceFolderName1, mon);
|
||||
fss.copy(tarSourceFolder2, tarSource, tarSourceFolderName2, mon);
|
||||
}
|
||||
|
||||
public void testCreateTarFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//Create the zip file first.
|
||||
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
|
||||
assertNotNull(newArchiveFile);
|
||||
assertTrue(newArchiveFile.exists());
|
||||
assertTrue(newArchiveFile.canRead());
|
||||
assertTrue(newArchiveFile.canWrite());
|
||||
assertEquals(newArchiveFile.getName(), testName);
|
||||
assertEquals(newArchiveFile.getParentPath(), tempDirPath);
|
||||
|
||||
//fss.resolveFilterString(filterString, monitor)
|
||||
|
||||
//Now, we want to create a text file inside.
|
||||
String childName = "aaa.txt";
|
||||
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file1);
|
||||
|
||||
childName = "bbb.txt";
|
||||
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file2);
|
||||
|
||||
//Create a folder
|
||||
childName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, check the contents
|
||||
String[] namesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
|
||||
int[] typesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(newArchiveFile, namesToCheck, typesToCheck);
|
||||
|
||||
//Now, create some files inside the folder.
|
||||
String secondLevelChildName = "ccc.exe";
|
||||
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild1);
|
||||
|
||||
secondLevelChildName = "ddd.bat";
|
||||
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild2);
|
||||
|
||||
secondLevelChildName = "another Folder"; //folder with space
|
||||
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
|
||||
assertNotNull(levelTwoChild3);
|
||||
|
||||
//Now, check the contents
|
||||
String[] namesToCheck1 = {"ccc.exe", "ddd.bat", "another Folder"};
|
||||
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(folder1, namesToCheck1, typesToCheck1);
|
||||
}
|
||||
|
||||
public void testCopyToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
|
||||
fss.copy(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
|
||||
|
||||
Object theCopiedChild = getChildFromFolder(targetTarFile, sourceFolderName);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
|
||||
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testCopyTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//then, create a folder inside the tempDir
|
||||
String folderName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Get one of its fourth level children, and copy the folder to there.
|
||||
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNotNull(firstLevelChild);
|
||||
|
||||
fss.copy(firstLevelChild, folder1, tarSourceFolderName1, mon);
|
||||
|
||||
Object copiedVirtualFolder = getChildFromFolder(folder1, tarSourceFolderName1);
|
||||
assertNotNull(copiedVirtualFolder);
|
||||
|
||||
String[] contents = {"MANIFEST.MF"};
|
||||
int[] typesToCheck = {TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
|
||||
}
|
||||
|
||||
|
||||
public void testMoveToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
fss.move(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
|
||||
|
||||
Object theMovedChild = getChildFromFolder(targetTarFile, sourceFolderName);
|
||||
|
||||
assertNotNull(theMovedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
|
||||
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theMovedChild, childrenToCheck, typesToCheck);
|
||||
|
||||
//make sure the original folder is gone.
|
||||
Object originalSource = getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNull(originalSource);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testMoveTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//then, create a folder inside the tempDir
|
||||
//then, create a folder inside the tempDir
|
||||
String folderName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, copy one of the folder from the zip file into folder1
|
||||
String movedFolderName = tarSourceFolderName1;
|
||||
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNotNull(firstLevelChild);
|
||||
fss.move(firstLevelChild, folder1, movedFolderName, mon);
|
||||
|
||||
Object movedVirtualFolder = getChildFromFolder(folder1, movedFolderName);
|
||||
|
||||
assertNotNull(movedVirtualFolder);
|
||||
|
||||
String[] contents = {"MANIFEST.MF"};
|
||||
int[] typesToCheck = {TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)movedVirtualFolder, contents, typesToCheck);
|
||||
|
||||
//Now, make sure the moved virtual folder is gone from its original zip file
|
||||
IRemoteFile tmp = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNull(tmp);
|
||||
}
|
||||
|
||||
|
||||
public void testRenameTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//Create the zip file first.
|
||||
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
|
||||
|
||||
//Now, we want to create a text file inside.
|
||||
String childName = "aaa.txt";
|
||||
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file1);
|
||||
|
||||
childName = "bbb.txt";
|
||||
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file2);
|
||||
|
||||
//Create a folder
|
||||
childName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, check the contents
|
||||
String[] levelOneNamesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
|
||||
int[] levalOneTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(newArchiveFile, levelOneNamesToCheck, levalOneTypesToCheck);
|
||||
|
||||
//Now, create some files inside the folder.
|
||||
String secondLevelChildName = "ccc.exe";
|
||||
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild1);
|
||||
|
||||
secondLevelChildName = "ddd.bat";
|
||||
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild2);
|
||||
|
||||
secondLevelChildName = "another Folder"; //folder with space
|
||||
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
|
||||
assertNotNull(levelTwoChild3);
|
||||
|
||||
//Now, check the contents
|
||||
String[] levelTwoNamesToCheck = {"ccc.exe", "ddd.bat", "another Folder"};
|
||||
int[] levalTwoTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(folder1, levelTwoNamesToCheck, levalTwoTypesToCheck);
|
||||
|
||||
//Now rename one of the text file in the first level:
|
||||
IRemoteFile childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "aaa.txt");
|
||||
fss.rename(childToRename, "aaa1.txt", mon);
|
||||
//Now rename one of the folder in the first level
|
||||
childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder1");
|
||||
fss.rename(childToRename, "folder2", mon);
|
||||
|
||||
//Check the result of rename
|
||||
String[] newLevelOneNamesToCheck = {"aaa1.txt", "bbb.txt", "folder2"};
|
||||
checkFolderContents(newArchiveFile, newLevelOneNamesToCheck, levalOneTypesToCheck);
|
||||
|
||||
//Now rename one of the text file in the second level:
|
||||
IRemoteFile thisFolder = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder2");
|
||||
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "ddd.bat");
|
||||
fss.rename(childToRename, "ddd1.bat", mon);
|
||||
//Now rename one of the folder in the second level
|
||||
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "another Folder");
|
||||
fss.rename(childToRename, "some folder$", mon);
|
||||
|
||||
//Check the result of rename
|
||||
String[] newLevelTwoNamesToCheck = {"ccc.exe", "ddd1.bat", "some folder$"};
|
||||
checkFolderContents(thisFolder, newLevelTwoNamesToCheck, levalTwoTypesToCheck);
|
||||
}
|
||||
|
||||
public void testDeleteTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//delete a file from level 2
|
||||
String parentForFileToDeleteName ="META-INF";
|
||||
IRemoteFile parentForFileToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForFileToDeleteName);
|
||||
assertNotNull(parentForFileToDelete);
|
||||
String deleteFileName = "MANIFEST.MF";
|
||||
IRemoteFile fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNotNull(fileToToDelete);
|
||||
//Now, delete this file
|
||||
fss.delete(fileToToDelete, mon);
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNull(fileToToDelete);
|
||||
|
||||
//then, get directory "java" under org/eclipse/dstore/core
|
||||
String parentForDirectoryToDeleteName ="org";
|
||||
IRemoteFile parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="eclipse";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="dstore";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="core";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
String directoryToDeleteName = "java";
|
||||
IRemoteFile directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
//Now, delete this directory
|
||||
fss.delete(directoryToDelete, mon);
|
||||
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
|
||||
//check result of this operation
|
||||
String[] contents = {"client", "miners", "model", "server", "util", "Activator.java"};
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
|
||||
checkFolderContents(parentForDirectoryToDelete, contents, typesToCheck);
|
||||
|
||||
//And check this directory is not there any more.
|
||||
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
assertNull(directoryToDelete);
|
||||
|
||||
//Now, delete some files and folder inside the a virtual folder.
|
||||
parentForFileToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, "model");
|
||||
deleteFileName = "DE.java";
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNotNull(fileToToDelete);
|
||||
|
||||
fss.delete(fileToToDelete, mon);
|
||||
|
||||
//check the result
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
|
||||
assertNull(fileToToDelete);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testCopyBatchToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
//Now, copy the source folder.
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir,sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
|
||||
IRemoteFile[] sourceFiles = new IRemoteFile[3];
|
||||
//Also add some of its children into the batch.
|
||||
String childToCopyName1 = "aaaaaaaa";
|
||||
sourceFiles[0] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName1);
|
||||
String childToCopyName2 = "aaaab";
|
||||
sourceFiles[1] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName2);
|
||||
String childToCopyName3 = "epdcdump01.hex12a";
|
||||
sourceFiles[2] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName3);
|
||||
fss.copyBatch(sourceFiles, targetTarFile, mon);
|
||||
|
||||
//Checking the first copied folder
|
||||
Object theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName1);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck1 = {"adsf", "eclipse-SDK-3.3M6-win32.zip", "epdcdump01.hex12", "epdcdump01.hex12aaaa"};
|
||||
|
||||
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck1, typesToCheck1);
|
||||
|
||||
//Checking the second copied folder
|
||||
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName2);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck2 = {"features"};
|
||||
|
||||
int[] typesToCheck2 = {TYPE_FOLDER};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck2, typesToCheck2);
|
||||
|
||||
//Checking the third copied file
|
||||
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName3);
|
||||
assertNotNull(theCopiedChild);
|
||||
assertTrue(((IRemoteFile)theCopiedChild).isDirectory() != true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void testOpenFileFromTarArchive() throws Exception {
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createTarSourceForOpen();
|
||||
|
||||
String tarTargetFileName = tarSourceForOpenTest;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
//Now get the contents of the virtual file we want to download:
|
||||
String fileContentToVerifyName1 = "MANIFEST.MF";
|
||||
|
||||
//Get its parent first.
|
||||
IRemoteFile itsParentFolder = (IRemoteFile)getChildFromFolder(tempDir,tarSourceForOpenFolderName1);
|
||||
assertNotNull(itsParentFolder);
|
||||
|
||||
//Then get this file:
|
||||
IRemoteFile thisVirtualFile = (IRemoteFile)getChildFromFolder(itsParentFolder, fileContentToVerifyName1);
|
||||
assertNotNull(thisVirtualFile);
|
||||
|
||||
//Now, we want to download the content of this file
|
||||
//We could just construct a dummy localpath for it.
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String localPath = tempPath + File.separator + fileContentToVerifyName1;
|
||||
fss.download(thisVirtualFile, localPath, thisVirtualFile.getEncoding(), mon);
|
||||
|
||||
//now, verify the content of the local file
|
||||
IFileStore localFile = temp.getChild(fileContentToVerifyName1);
|
||||
//Check the content of the download file:
|
||||
boolean sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null));
|
||||
assertTrue(sameContent);
|
||||
|
||||
|
||||
//now, we got the contents of another virtual file we want to download:
|
||||
String fileContentToVerifyName2 = "Activator.java";
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(tempDir,tarSourceForOpenFolderName2);
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"eclipse");
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"dstore");
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"core");
|
||||
assertNotNull(itsParentFolder);
|
||||
thisVirtualFile = (IRemoteFile)getChildFromFolder(itsParentFolder, fileContentToVerifyName2);
|
||||
assertNotNull(thisVirtualFile);
|
||||
localPath = tempPath + File.separator + fileContentToVerifyName2;
|
||||
fss.download(thisVirtualFile, localPath, thisVirtualFile.getEncoding(), mon);
|
||||
|
||||
//now, verify the content of the local file
|
||||
localFile = temp.getChild(fileContentToVerifyName2);
|
||||
//Check the content of the download file:
|
||||
sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null));
|
||||
assertTrue(sameContent);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -6,16 +6,15 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - Fix Javadoc warnings
|
||||
* Martin Oberhuber (Wind River) - organize, enable and tag test cases
|
||||
* Johnson Ma (Wind River) - [195402] Add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
import org.eclipse.core.filesystem.EFS;
|
||||
import org.eclipse.core.filesystem.IFileStore;
|
||||
import org.eclipse.core.resources.IWorkspace;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.model.ISystemResourceSet;
|
||||
|
@ -27,26 +26,12 @@ import org.eclipse.rse.subsystems.files.core.servicesubsystem.IFileServiceSubSys
|
|||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
||||
import org.eclipse.rse.tests.RSETestsPlugin;
|
||||
|
||||
public class FileServiceArchiveTest extends FileServiceBaseTest {
|
||||
public class FileServiceArchiveTest extends FileServiceArchiveBaseTest {
|
||||
|
||||
protected String folderToCopyName1 = "RemoteSystemsConnections";
|
||||
protected String folderToCopyName2 = "6YLT5Xa";
|
||||
protected String folderToCopyName3 = "folderToCopy";
|
||||
|
||||
protected String zipSourceFileName1 = "closedBefore.zip";
|
||||
protected String zipSourceFileName2 = "mynewzip.zip";
|
||||
|
||||
protected String tarSourceFileName1 = "source.tar";
|
||||
protected String tarSourceFileName2 = "mynewtar.tar";
|
||||
|
||||
protected String tarSourceFolderName1 = "META-INF";
|
||||
protected String tarSourceFolderName2 = "org";
|
||||
|
||||
protected String tarSourceForOpenTest = "tarSourceForOpen.tar";
|
||||
protected String tarSourceForOpenFolderName1 = "META-INF";
|
||||
protected String tarSourceForOpenFolderName2 = "org";
|
||||
|
||||
protected String fileContentString1 = "this is just some dummy content \n to a remote file \n to test an open operation";
|
||||
protected String ZIP_SOURCE_DIR = "";
|
||||
protected String TEST_DIR = "";
|
||||
protected String SYSTEM_TYPE_ID = IRSESystemType.SYSTEMTYPE_LOCAL_ID;
|
||||
|
@ -54,70 +39,17 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
protected String SYSTEM_NAME = "";
|
||||
protected String USER_ID = "";
|
||||
protected String PASSWORD = "";
|
||||
|
||||
public static IWorkspace getWorkspace() {
|
||||
return ResourcesPlugin.getWorkspace();
|
||||
}
|
||||
|
||||
public void createSourceFolders() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
// create the source folder used for copy or move
|
||||
IFileStore folderToCopy = temp.getChild(folderToCopyName3);
|
||||
createDir(folderToCopy, true);
|
||||
//Now, populate the contents in the folderToCopy.
|
||||
IFileStore aaaaaaaa = folderToCopy.getChild("aaaaaaaa");
|
||||
createDir(aaaaaaaa, true);
|
||||
//create file inside the aaaaaaaa folder.
|
||||
IFileStore adsf = aaaaaaaa.getChild("adsf");
|
||||
content = getRandomString();
|
||||
createFile(adsf, content);
|
||||
IFileStore eclipse_SDK_3_3M6_win32_zip = aaaaaaaa.getChild("eclipse-SDK-3.3M6-win32.zip");
|
||||
createFile(eclipse_SDK_3_3M6_win32_zip, "");
|
||||
IFileStore epdcdump01_hex12 = aaaaaaaa.getChild("epdcdump01.hex12");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12, content);
|
||||
IFileStore epdcdump01_hex12aaaa = aaaaaaaa.getChild("epdcdump01.hex12aaaa");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12aaaa, content);
|
||||
|
||||
IFileStore aaaab = folderToCopy.getChild("aaaab");
|
||||
createDir(aaaab, true);
|
||||
IFileStore features = aaaab.getChild("features");
|
||||
createDir(features, true);
|
||||
IFileStore dummyFile = features.getChild("dummy.txt");
|
||||
content = getRandomString();
|
||||
createFile(dummyFile, content);
|
||||
//create file inside the aaaab folder.
|
||||
content = "this is just a simple content \n to a simple file \n to test a 'simple' copy";
|
||||
IFileStore epdcdump01_hex12a = aaaab.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a, content);
|
||||
|
||||
IFileStore epdcdump01_hex12a1 = folderToCopy.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a1, content);
|
||||
|
||||
IFileStore RSE_SDK_2_0RC1_zip = folderToCopy.getChild("RSE-SDK-2.0RC1.zip");
|
||||
content = getRandomString();
|
||||
createFile(RSE_SDK_2_0RC1_zip, content);
|
||||
|
||||
//now, copy folderToCopy into the folder in the remote system
|
||||
IRemoteFile sourceFolderToCopy3 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName3, mon);
|
||||
ISystemDragDropAdapter srcAdapter3 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy3).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter3);
|
||||
fromSet3.addResource(sourceFolderToCopy3);
|
||||
ISystemResourceSet tempObjects3 = srcAdapter3.doDrag(fromSet3, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects3, tempDir, mon, true);
|
||||
|
||||
//Then, we need to retrieve children of the tempDir to cache their information.
|
||||
fss.resolveFilterString(tempDir, null, mon);
|
||||
|
||||
//Then, delete the temp folder in the junit workspace.
|
||||
temp.delete(EFS.NONE, mon);
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileServiceArchiveTest(String name) {
|
||||
super(name);
|
||||
tarSourceFileName1 = "source.tar";
|
||||
tarSourceFileName2 = "mynewtar.tar";
|
||||
tarSourceForOpenTest = "tarSourceForOpen.tar";
|
||||
testName = "dummy.tar";
|
||||
}
|
||||
|
||||
public void createSourceZipFiles() throws Exception
|
||||
|
@ -370,221 +302,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
return targetDir;
|
||||
}
|
||||
|
||||
protected void createSuperTransferFolder(IFileStore temp) throws Exception
|
||||
{
|
||||
|
||||
String content = getRandomString();
|
||||
|
||||
// create the source folder used for copy or move
|
||||
IFileStore folderToCopy = temp.getChild(folderToCopyName3);
|
||||
createDir(folderToCopy, true);
|
||||
//Now, populate the contents in the folderToCopy.
|
||||
IFileStore aaaaaaaa = folderToCopy.getChild("aaaaaaaa");
|
||||
createDir(aaaaaaaa, true);
|
||||
//create file inside the aaaaaaaa folder.
|
||||
IFileStore adsf = aaaaaaaa.getChild("adsf");
|
||||
content = getRandomString();
|
||||
createFile(adsf, content);
|
||||
IFileStore eclipse_SDK_3_3M6_win32_zip = aaaaaaaa.getChild("eclipse-SDK-3.3M6-win32.zip");
|
||||
createFile(eclipse_SDK_3_3M6_win32_zip, "");
|
||||
IFileStore epdcdump01_hex12 = aaaaaaaa.getChild("epdcdump01.hex12");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12, content);
|
||||
IFileStore epdcdump01_hex12aaaa = aaaaaaaa.getChild("epdcdump01.hex12aaaa");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12aaaa, content);
|
||||
|
||||
IFileStore aaaab = folderToCopy.getChild("aaaab");
|
||||
createDir(aaaab, true);
|
||||
IFileStore features = aaaab.getChild("features");
|
||||
createDir(features, true);
|
||||
IFileStore dummyFile = features.getChild("dummy.txt");
|
||||
content = getRandomString();
|
||||
createFile(dummyFile, content);
|
||||
//create file inside the aaaab folder.
|
||||
content = "this is just a simple content \n to a simple file \n to test a 'simple' copy";
|
||||
IFileStore epdcdump01_hex12a = aaaab.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a, content);
|
||||
|
||||
IFileStore epdcdump01_hex12a1 = folderToCopy.getChild("epdcdump01.hex12a");
|
||||
content = getRandomString();
|
||||
createFile(epdcdump01_hex12a1, content);
|
||||
|
||||
IFileStore RSE_SDK_2_0RC1_zip = folderToCopy.getChild("RSE-SDK-2.0RC1.zip");
|
||||
content = getRandomString();
|
||||
createFile(RSE_SDK_2_0RC1_zip, content);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
public void createTarSourceForOpen() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
//Now, we need to construct a "source.tar" archive file
|
||||
//We will construct the content of the tar file in folders "META-INF" and "org"
|
||||
//Then we copy this folder into a tar file by RSE API.
|
||||
IFileStore META_INF = temp.getChild(tarSourceForOpenFolderName1);
|
||||
createDir(META_INF, true);
|
||||
//Now, populate the contents in the folder.
|
||||
IFileStore MANIFEST_MF = META_INF.getChild("MANIFEST.MF");
|
||||
content = fileContentString1;
|
||||
createFile(MANIFEST_MF, content);
|
||||
|
||||
//create folder "org"
|
||||
IFileStore org = temp.getChild("org");
|
||||
createDir(org, true);
|
||||
IFileStore eclipse = org.getChild("eclipse");
|
||||
createDir(eclipse, true);
|
||||
//create "dstore" folder inside "org"
|
||||
IFileStore dstore = eclipse.getChild("dstore");
|
||||
createDir(dstore, true);
|
||||
//Now, create a few folders inside the dstore folder.
|
||||
IFileStore core = dstore.getChild("core");
|
||||
createDir(core, true);
|
||||
IFileStore internal = dstore.getChild("internal");
|
||||
createDir(internal, true);
|
||||
|
||||
//now create directory inside "core":
|
||||
IFileStore client = core.getChild("client");
|
||||
createDir(client, true);
|
||||
IFileStore java = core.getChild("java");
|
||||
createDir(java, true);
|
||||
IFileStore miners = core.getChild("miners");
|
||||
createDir(miners, true);
|
||||
IFileStore model = core.getChild("model");
|
||||
createDir(model, true);
|
||||
IFileStore server = core.getChild("server");
|
||||
createDir(server, true);
|
||||
IFileStore util = core.getChild("util");
|
||||
createDir(util, true);
|
||||
IFileStore Activator_java = core.getChild("Activator.java");
|
||||
content = fileContentString1;
|
||||
createFile(Activator_java, content);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java = client.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java, content);
|
||||
IFileStore ConnectionStatus_java = client.getChild("ConnectionStatus.java");
|
||||
content = fileContentString1;
|
||||
createFile(ConnectionStatus_java, content);
|
||||
|
||||
//now, some contents in java folder
|
||||
IFileStore ClassByteStreamHandler$ReceiveClassInstanceThread_java = java.getChild("ClassByteStreamHandler$ReceiveClassInstanceThread.java");
|
||||
content = getRandomString();
|
||||
createFile(ClassByteStreamHandler$ReceiveClassInstanceThread_java, content);
|
||||
|
||||
//now, some contents in miners folder
|
||||
IFileStore Miner_java = miners.getChild("Miner.java");
|
||||
content = getRandomString();
|
||||
createFile(Miner_java, content);
|
||||
IFileStore MinerThread_java = miners.getChild("MinerThread.java");
|
||||
content = getRandomString();
|
||||
createFile(MinerThread_java, content);
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java = model.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java, content);
|
||||
IFileStore DE_java = model.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java, content);
|
||||
IFileStore Handler_java = model.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java = server.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java = util.getChild("StringCompare.java");
|
||||
content = fileContentString1;
|
||||
createFile(StringCompare_java, content);
|
||||
|
||||
//now, create the contents in "internal" folder
|
||||
IFileStore core1 = internal.getChild("core");
|
||||
createDir(core1, true);
|
||||
|
||||
//then create some folder in this "core" folder
|
||||
IFileStore client1 = core1.getChild("client");
|
||||
createDir(client1, true);
|
||||
IFileStore model1 = core1.getChild("model");
|
||||
createDir(model1, true);
|
||||
IFileStore server1 = core1.getChild("server");
|
||||
createDir(server1, true);
|
||||
IFileStore util1 = core1.getChild("util");
|
||||
createDir(util1, true);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java1 = client1.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java1, content);
|
||||
IFileStore ConnectionStatus_java1 = client1.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java1, content);
|
||||
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java1 = model1.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java1, content);
|
||||
IFileStore DE_java1 = model1.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java1, content);
|
||||
IFileStore Handler_java1 = model1.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java1, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java1 = server1.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java1, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java1 = util1.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java1, content);
|
||||
|
||||
//now, copy META_INF into the folder in the remote system
|
||||
IRemoteFile META_INF_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceForOpenFolderName1, mon);
|
||||
assertNotNull(META_INF_folder);
|
||||
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) META_INF_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
|
||||
fromSet.addResource(META_INF_folder);
|
||||
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
|
||||
|
||||
//now, copy org into the folder in the remote system
|
||||
IRemoteFile org_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceForOpenFolderName2, mon);
|
||||
assertNotNull(org_folder);
|
||||
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) org_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
|
||||
fromSet2.addResource(org_folder);
|
||||
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
|
||||
|
||||
//now, create tar file in the host
|
||||
IRemoteFile tarSource = createFileOrFolder(tempDir.getAbsolutePath(), tarSourceForOpenTest, false);
|
||||
assertNotNull(tarSource);
|
||||
IRemoteFile tarSourceFolder1 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceForOpenFolderName1);
|
||||
assertNotNull(tarSourceFolder1);
|
||||
IRemoteFile tarSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceForOpenFolderName2);
|
||||
fss.copy(tarSourceFolder1, tarSource, tarSourceForOpenFolderName1, mon);
|
||||
fss.copy(tarSourceFolder2, tarSource, tarSourceForOpenFolderName2, mon);
|
||||
|
||||
//Then, we need to retrieve children of the tempDir to cache their information.
|
||||
fss.resolveFilterString(tempDir, null, mon);
|
||||
|
||||
//Then, delete the temp folder in the junit workspace.
|
||||
temp.delete(EFS.NONE, mon);
|
||||
}
|
||||
|
||||
|
||||
public void testCreateZipFile() throws Exception {
|
||||
|
@ -1406,249 +1123,8 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
|
||||
}
|
||||
|
||||
public void createSourceTarFiles() throws Exception
|
||||
{
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String content = getRandomString();
|
||||
|
||||
//Now, we need to construct a "source.tar" archive file
|
||||
//We will construct the content of the tar file in folders "META-INF" and "org"
|
||||
//Then we copy this folder into a tar file by RSE API.
|
||||
IFileStore META_INF = temp.getChild(tarSourceFolderName1);
|
||||
createDir(META_INF, true);
|
||||
//Now, populate the contents in the folder.
|
||||
IFileStore MANIFEST_MF = META_INF.getChild("MANIFEST.MF");
|
||||
content = getRandomString();
|
||||
createFile(MANIFEST_MF, content);
|
||||
//create folder "org"
|
||||
IFileStore org = temp.getChild(tarSourceFolderName2);
|
||||
createDir(org, true);
|
||||
IFileStore eclipse = org.getChild("eclipse");
|
||||
createDir(eclipse, true);
|
||||
//create "dstore" folder inside "org"
|
||||
IFileStore dstore = eclipse.getChild("dstore");
|
||||
createDir(dstore, true);
|
||||
//Now, create a few folders inside the dstore folder.
|
||||
IFileStore core = dstore.getChild("core");
|
||||
createDir(core, true);
|
||||
IFileStore internal = dstore.getChild("internal");
|
||||
createDir(internal, true);
|
||||
|
||||
//now create directory inside "core":
|
||||
IFileStore client = core.getChild("client");
|
||||
createDir(client, true);
|
||||
IFileStore java = core.getChild("java");
|
||||
createDir(java, true);
|
||||
IFileStore miners = core.getChild("miners");
|
||||
createDir(miners, true);
|
||||
IFileStore model = core.getChild("model");
|
||||
createDir(model, true);
|
||||
IFileStore server = core.getChild("server");
|
||||
createDir(server, true);
|
||||
IFileStore util = core.getChild("util");
|
||||
createDir(util, true);
|
||||
IFileStore Activator_java = core.getChild("Activator.java");
|
||||
content = getRandomString();
|
||||
createFile(Activator_java, content);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java = client.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java, content);
|
||||
IFileStore ConnectionStatus_java = client.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java, content);
|
||||
|
||||
//now, some contents in java folder
|
||||
IFileStore ClassByteStreamHandler$ReceiveClassInstanceThread_java = java.getChild("ClassByteStreamHandler$ReceiveClassInstanceThread.java");
|
||||
content = getRandomString();
|
||||
createFile(ClassByteStreamHandler$ReceiveClassInstanceThread_java, content);
|
||||
|
||||
//now, some contents in miners folder
|
||||
IFileStore Miner_java = miners.getChild("Miner.java");
|
||||
content = getRandomString();
|
||||
createFile(Miner_java, content);
|
||||
IFileStore MinerThread_java = miners.getChild("MinerThread.java");
|
||||
content = getRandomString();
|
||||
createFile(MinerThread_java, content);
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java = model.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java, content);
|
||||
IFileStore DE_java = model.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java, content);
|
||||
IFileStore Handler_java = model.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java = server.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java = util.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java, content);
|
||||
|
||||
//now, create the contents in "internal" folder
|
||||
IFileStore core1 = internal.getChild("core");
|
||||
createDir(core1, true);
|
||||
|
||||
//then create some folder in this "core" folder
|
||||
IFileStore client1 = core1.getChild("client");
|
||||
createDir(client1, true);
|
||||
IFileStore model1 = core1.getChild("model");
|
||||
createDir(model1, true);
|
||||
IFileStore server1 = core1.getChild("server");
|
||||
createDir(server1, true);
|
||||
IFileStore util1 = core1.getChild("util");
|
||||
createDir(util1, true);
|
||||
|
||||
//now, some contents on client folder
|
||||
IFileStore ClientConnection_java1 = client1.getChild("ClientConnection.java");
|
||||
content = getRandomString();
|
||||
createFile(ClientConnection_java1, content);
|
||||
IFileStore ConnectionStatus_java1 = client1.getChild("ConnectionStatus.java");
|
||||
content = getRandomString();
|
||||
createFile(ConnectionStatus_java1, content);
|
||||
|
||||
|
||||
//now, some contents in model folder
|
||||
IFileStore ByteStreamHandler_java1 = model1.getChild("ByteStreamHandler.java");
|
||||
content = getRandomString();
|
||||
createFile(ByteStreamHandler_java1, content);
|
||||
IFileStore DE_java1 = model1.getChild("DE.java");
|
||||
content = getRandomString();
|
||||
createFile(DE_java1, content);
|
||||
IFileStore Handler_java1 = model1.getChild("Handler.java");
|
||||
content = getRandomString();
|
||||
createFile(Handler_java1, content);
|
||||
|
||||
//now, some contents in server folder
|
||||
IFileStore Server_java1 = server1.getChild("Server.java");
|
||||
content = getRandomString();
|
||||
createFile(Server_java1, content);
|
||||
|
||||
//now, some contents in util folder
|
||||
IFileStore StringCompare_java1 = util1.getChild("StringCompare.java");
|
||||
content = getRandomString();
|
||||
createFile(StringCompare_java1, content);
|
||||
|
||||
//now, copy META_INF into the folder in the remote system
|
||||
IRemoteFile META_INF_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName1, mon);
|
||||
assertNotNull(META_INF_folder);
|
||||
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) META_INF_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
|
||||
fromSet.addResource(META_INF_folder);
|
||||
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
|
||||
|
||||
//now, copy org into the folder in the remote system
|
||||
IRemoteFile org_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName2, mon);
|
||||
assertNotNull(org_folder);
|
||||
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) org_folder).getAdapter(ISystemDragDropAdapter.class);
|
||||
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
|
||||
fromSet2.addResource(org_folder);
|
||||
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
|
||||
UniversalFileTransferUtility.uploadResourcesFromWorkspace((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
|
||||
|
||||
//now, create tar file in the host
|
||||
IRemoteFile tarSource = createFileOrFolder(tempDir.getAbsolutePath(), tarSourceFileName1, false);
|
||||
assertNotNull(tarSource);
|
||||
IRemoteFile tarSourceFolder1 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName1);
|
||||
assertNotNull(tarSourceFolder1);
|
||||
IRemoteFile tarSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName2);
|
||||
fss.copy(tarSourceFolder1, tarSource, tarSourceFolderName1, mon);
|
||||
fss.copy(tarSourceFolder2, tarSource, tarSourceFolderName2, mon);
|
||||
}
|
||||
|
||||
public void testCreateTarFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//Create the zip file first.
|
||||
String testName = "dummy.tar";
|
||||
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
|
||||
assertNotNull(newArchiveFile);
|
||||
assertTrue(newArchiveFile.exists());
|
||||
assertTrue(newArchiveFile.canRead());
|
||||
assertTrue(newArchiveFile.canWrite());
|
||||
assertEquals(newArchiveFile.getName(), testName);
|
||||
assertEquals(newArchiveFile.getParentPath(), tempDirPath);
|
||||
|
||||
//fss.resolveFilterString(filterString, monitor)
|
||||
|
||||
//Now, we want to create a text file inside.
|
||||
String childName = "aaa.txt";
|
||||
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file1);
|
||||
|
||||
childName = "bbb.txt";
|
||||
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file2);
|
||||
|
||||
//Create a folder
|
||||
childName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, check the contents
|
||||
String[] namesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
|
||||
int[] typesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(newArchiveFile, namesToCheck, typesToCheck);
|
||||
|
||||
//Now, create some files inside the folder.
|
||||
String secondLevelChildName = "ccc.exe";
|
||||
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild1);
|
||||
|
||||
secondLevelChildName = "ddd.bat";
|
||||
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild2);
|
||||
|
||||
secondLevelChildName = "another Folder"; //folder with space
|
||||
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
|
||||
assertNotNull(levelTwoChild3);
|
||||
|
||||
//Now, check the contents
|
||||
String[] namesToCheck1 = {"ccc.exe", "ddd.bat", "another Folder"};
|
||||
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(folder1, namesToCheck1, typesToCheck1);
|
||||
}
|
||||
|
||||
public void testCopyToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
|
||||
fss.copy(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
|
||||
|
||||
Object theCopiedChild = getChildFromFolder(targetTarFile, sourceFolderName);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
|
||||
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
|
||||
}
|
||||
|
||||
public void testCopyToTarVirtualFileLevelOne() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
|
@ -1721,35 +1197,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
|
||||
}
|
||||
|
||||
public void testCopyTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//then, create a folder inside the tempDir
|
||||
String folderName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Get one of its fourth level children, and copy the folder to there.
|
||||
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNotNull(firstLevelChild);
|
||||
|
||||
fss.copy(firstLevelChild, folder1, tarSourceFolderName1, mon);
|
||||
|
||||
Object copiedVirtualFolder = getChildFromFolder(folder1, tarSourceFolderName1);
|
||||
assertNotNull(copiedVirtualFolder);
|
||||
|
||||
String[] contents = {"MANIFEST.MF"};
|
||||
int[] typesToCheck = {TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
|
||||
}
|
||||
|
||||
public void testCopyTarVirtualFileLevelFour() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
|
@ -1799,38 +1246,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
|
||||
}
|
||||
|
||||
public void testMoveToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
fss.move(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
|
||||
|
||||
Object theMovedChild = getChildFromFolder(targetTarFile, sourceFolderName);
|
||||
|
||||
assertNotNull(theMovedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
|
||||
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theMovedChild, childrenToCheck, typesToCheck);
|
||||
|
||||
//make sure the original folder is gone.
|
||||
Object originalSource = getChildFromFolder(tempDir, sourceFolderName);
|
||||
assertNull(originalSource);
|
||||
}
|
||||
|
||||
public void testMoveToTarVirtualFileLevelOne() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
|
@ -1912,41 +1327,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
assertNull(originalSource);
|
||||
}
|
||||
|
||||
public void testMoveTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//then, create a folder inside the tempDir
|
||||
//then, create a folder inside the tempDir
|
||||
String folderName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, copy one of the folder from the zip file into folder1
|
||||
String movedFolderName = tarSourceFolderName1;
|
||||
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNotNull(firstLevelChild);
|
||||
fss.move(firstLevelChild, folder1, movedFolderName, mon);
|
||||
|
||||
Object movedVirtualFolder = getChildFromFolder(folder1, movedFolderName);
|
||||
|
||||
assertNotNull(movedVirtualFolder);
|
||||
|
||||
String[] contents = {"MANIFEST.MF"};
|
||||
int[] typesToCheck = {TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)movedVirtualFolder, contents, typesToCheck);
|
||||
|
||||
//Now, make sure the moved virtual folder is gone from its original zip file
|
||||
IRemoteFile tmp = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
|
||||
assertNull(tmp);
|
||||
}
|
||||
|
||||
public void testMoveTarVirtualFileLevelFour() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
|
@ -1992,201 +1372,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
assertNull(result); //we should not be able to find it.
|
||||
}
|
||||
|
||||
public void testRenameTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//Create the zip file first.
|
||||
String testName = "source.tar";
|
||||
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
|
||||
|
||||
//Now, we want to create a text file inside.
|
||||
String childName = "aaa.txt";
|
||||
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file1);
|
||||
|
||||
childName = "bbb.txt";
|
||||
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
|
||||
assertNotNull(file2);
|
||||
|
||||
//Create a folder
|
||||
childName = "folder1";
|
||||
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
|
||||
assertNotNull(folder1);
|
||||
|
||||
//Now, check the contents
|
||||
String[] levelOneNamesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
|
||||
int[] levalOneTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(newArchiveFile, levelOneNamesToCheck, levalOneTypesToCheck);
|
||||
|
||||
//Now, create some files inside the folder.
|
||||
String secondLevelChildName = "ccc.exe";
|
||||
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild1);
|
||||
|
||||
secondLevelChildName = "ddd.bat";
|
||||
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
|
||||
assertNotNull(levelTwoChild2);
|
||||
|
||||
secondLevelChildName = "another Folder"; //folder with space
|
||||
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
|
||||
assertNotNull(levelTwoChild3);
|
||||
|
||||
//Now, check the contents
|
||||
String[] levelTwoNamesToCheck = {"ccc.exe", "ddd.bat", "another Folder"};
|
||||
int[] levalTwoTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
|
||||
checkFolderContents(folder1, levelTwoNamesToCheck, levalTwoTypesToCheck);
|
||||
|
||||
//Now rename one of the text file in the first level:
|
||||
IRemoteFile childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "aaa.txt");
|
||||
fss.rename(childToRename, "aaa1.txt", mon);
|
||||
//Now rename one of the folder in the first level
|
||||
childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder1");
|
||||
fss.rename(childToRename, "folder2", mon);
|
||||
|
||||
//Check the result of rename
|
||||
String[] newLevelOneNamesToCheck = {"aaa1.txt", "bbb.txt", "folder2"};
|
||||
checkFolderContents(newArchiveFile, newLevelOneNamesToCheck, levalOneTypesToCheck);
|
||||
|
||||
//Now rename one of the text file in the second level:
|
||||
IRemoteFile thisFolder = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder2");
|
||||
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "ddd.bat");
|
||||
fss.rename(childToRename, "ddd1.bat", mon);
|
||||
//Now rename one of the folder in the second level
|
||||
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "another Folder");
|
||||
fss.rename(childToRename, "some folder$", mon);
|
||||
|
||||
//Check the result of rename
|
||||
String[] newLevelTwoNamesToCheck = {"ccc.exe", "ddd1.bat", "some folder$"};
|
||||
checkFolderContents(thisFolder, newLevelTwoNamesToCheck, levalTwoTypesToCheck);
|
||||
}
|
||||
|
||||
public void testDeleteTarVirtualFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createSourceTarFiles();
|
||||
|
||||
String sourceFileName = tarSourceFileName1;
|
||||
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
|
||||
assertNotNull(sourceTarFile);
|
||||
|
||||
//delete a file from level 2
|
||||
String parentForFileToDeleteName ="META-INF";
|
||||
IRemoteFile parentForFileToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForFileToDeleteName);
|
||||
assertNotNull(parentForFileToDelete);
|
||||
String deleteFileName = "MANIFEST.MF";
|
||||
IRemoteFile fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNotNull(fileToToDelete);
|
||||
//Now, delete this file
|
||||
fss.delete(fileToToDelete, mon);
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNull(fileToToDelete);
|
||||
|
||||
//then, get directory "java" under org/eclipse/dstore/core
|
||||
String parentForDirectoryToDeleteName ="org";
|
||||
IRemoteFile parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="eclipse";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="dstore";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
parentForDirectoryToDeleteName ="core";
|
||||
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
|
||||
assertNotNull(parentForDirectoryToDelete);
|
||||
|
||||
String directoryToDeleteName = "java";
|
||||
IRemoteFile directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
//Now, delete this directory
|
||||
fss.delete(directoryToDelete, mon);
|
||||
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
|
||||
//check result of this operation
|
||||
String[] contents = {"client", "miners", "model", "server", "util", "Activator.java"};
|
||||
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
|
||||
checkFolderContents(parentForDirectoryToDelete, contents, typesToCheck);
|
||||
|
||||
//And check this directory is not there any more.
|
||||
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
|
||||
assertNull(directoryToDelete);
|
||||
|
||||
//Now, delete some files and folder inside the a virtual folder.
|
||||
parentForFileToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, "model");
|
||||
deleteFileName = "DE.java";
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
assertNotNull(fileToToDelete);
|
||||
|
||||
fss.delete(fileToToDelete, mon);
|
||||
|
||||
//check the result
|
||||
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
|
||||
|
||||
assertNull(fileToToDelete);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testCopyBatchToTarArchiveFile() throws Exception {
|
||||
//-test-author-:XuanChen
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
createSourceTarFiles();
|
||||
createSourceFolders();
|
||||
|
||||
String tarTargetFileName = tarSourceFileName1;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
//Now, copy the source folder.
|
||||
String sourceFolderName = folderToCopyName3;
|
||||
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir,sourceFolderName);
|
||||
assertNotNull(sourceFolder);
|
||||
|
||||
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
|
||||
IRemoteFile[] sourceFiles = new IRemoteFile[3];
|
||||
//Also add some of its children into the batch.
|
||||
String childToCopyName1 = "aaaaaaaa";
|
||||
sourceFiles[0] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName1);
|
||||
String childToCopyName2 = "aaaab";
|
||||
sourceFiles[1] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName2);
|
||||
String childToCopyName3 = "epdcdump01.hex12a";
|
||||
sourceFiles[2] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName3);
|
||||
fss.copyBatch(sourceFiles, targetTarFile, mon);
|
||||
|
||||
//Checking the first copied folder
|
||||
Object theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName1);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck1 = {"adsf", "eclipse-SDK-3.3M6-win32.zip", "epdcdump01.hex12", "epdcdump01.hex12aaaa"};
|
||||
|
||||
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FILE, TYPE_FILE};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck1, typesToCheck1);
|
||||
|
||||
//Checking the second copied folder
|
||||
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName2);
|
||||
|
||||
assertNotNull(theCopiedChild);
|
||||
|
||||
//Also make sure the copied child has the right contents.
|
||||
String[] childrenToCheck2 = {"features"};
|
||||
|
||||
int[] typesToCheck2 = {TYPE_FOLDER};
|
||||
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck2, typesToCheck2);
|
||||
|
||||
//Checking the third copied file
|
||||
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName3);
|
||||
assertNotNull(theCopiedChild);
|
||||
assertTrue(((IRemoteFile)theCopiedChild).isDirectory() != true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testCopyBatchToTarVirtualFileLevelFour() throws Exception {
|
||||
|
@ -2311,70 +1496,5 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
|
|||
Object copiedVirtualFolder3 = getChildFromFolder(folder1, thirdToCopyName);
|
||||
assertNotNull(copiedVirtualFolder3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void testOpenFileFromTarArchive() throws Exception {
|
||||
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
|
||||
|
||||
//create the source for testing first
|
||||
createTarSourceForOpen();
|
||||
|
||||
String tarTargetFileName = tarSourceForOpenTest;
|
||||
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
|
||||
assertNotNull(targetTarFile);
|
||||
|
||||
//Now get the contents of the virtual file we want to download:
|
||||
String fileContentToVerifyName1 = "MANIFEST.MF";
|
||||
|
||||
//Get its parent first.
|
||||
IRemoteFile itsParentFolder = (IRemoteFile)getChildFromFolder(tempDir,tarSourceForOpenFolderName1);
|
||||
assertNotNull(itsParentFolder);
|
||||
|
||||
//Then get this file:
|
||||
IRemoteFile thisVirtualFile = (IRemoteFile)getChildFromFolder(itsParentFolder, fileContentToVerifyName1);
|
||||
assertNotNull(thisVirtualFile);
|
||||
|
||||
//Now, we want to download the content of this file
|
||||
//We could just construct a dummy localpath for it.
|
||||
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
|
||||
IFileStore temp = createDir(tempPath, true);
|
||||
String localPath = tempPath + "\\" + fileContentToVerifyName1;
|
||||
fss.download(thisVirtualFile, localPath, thisVirtualFile.getEncoding(), mon);
|
||||
|
||||
//now, verify the content of the local file
|
||||
IFileStore localFile = temp.getChild(fileContentToVerifyName1);
|
||||
//Check the content of the download file:
|
||||
boolean sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null));
|
||||
assertTrue(sameContent);
|
||||
|
||||
|
||||
//now, we got the contents of another virtual file we want to download:
|
||||
String fileContentToVerifyName2 = "Activator.java";
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(tempDir,tarSourceForOpenFolderName2);
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"eclipse");
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"dstore");
|
||||
assertNotNull(itsParentFolder);
|
||||
itsParentFolder = (IRemoteFile)getChildFromFolder(itsParentFolder,"core");
|
||||
assertNotNull(itsParentFolder);
|
||||
thisVirtualFile = (IRemoteFile)getChildFromFolder(itsParentFolder, fileContentToVerifyName2);
|
||||
assertNotNull(thisVirtualFile);
|
||||
localPath = tempPath + "\\" + fileContentToVerifyName2;
|
||||
fss.download(thisVirtualFile, localPath, thisVirtualFile.getEncoding(), mon);
|
||||
|
||||
//now, verify the content of the local file
|
||||
localFile = temp.getChild(fileContentToVerifyName2);
|
||||
//Check the content of the download file:
|
||||
sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null));
|
||||
assertTrue(sameContent);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - Fix Javadoc warnings
|
||||
* Martin Oberhuber (Wind River) - organize, enable and tag test cases
|
||||
* Martin Oberhuber (Wind River) - [195402] Add constructor with test name
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
|
@ -41,7 +42,15 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
|
|||
|
||||
private boolean fPreference_ALERT_SSL;
|
||||
private boolean fPreference_ALERT_NONSSL;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileServiceArchiveTestDStore(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public static junit.framework.Test suite() {
|
||||
TestSuite suite = new TestSuite("FileServiceArchiveTestDStore");
|
||||
|
||||
|
|
|
@ -6,8 +6,9 @@
|
|||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - Fix Javadoc warnings
|
||||
* Martin Oberhuber (Wind River) - [195402] Add constructor with test name
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
|
@ -29,6 +30,14 @@ public class FileServiceArchiveTestDStoreWindows extends FileServiceArchiveTest
|
|||
private boolean fPreference_ALERT_SSL;
|
||||
private boolean fPreference_ALERT_NONSSL;
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileServiceArchiveTestDStoreWindows(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public static junit.framework.Test suite() {
|
||||
|
||||
TestSuite suite = new TestSuite("FileServiceArchiveTestDStoreWindows");
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2007 IBM Corporation and others.
|
||||
* Copyright (c) 2007, 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
|
||||
*
|
||||
* Contributors:
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* Xuan Chen (IBM) - initial API and implementation
|
||||
* - <copied code from org.eclipse.core.tests.internal.localstore/LocalStoreTest (Copyright IBM)>
|
||||
* - <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
|
||||
* - <copied code from org.eclipse.core.tests.resources/ResourceTest (Copyright IBM)>
|
||||
* - <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
|
||||
* Martin Oberhuber (Wind River) - [195402] Add constructor with test name
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
|
@ -54,6 +55,14 @@ public class FileServiceBaseTest extends RSEBaseConnectionTestCase {
|
|||
|
||||
public static int TYPE_FILE = 0;
|
||||
public static int TYPE_FOLDER = 1;
|
||||
|
||||
/**
|
||||
* Constructor with specific test name.
|
||||
* @param name test to execute
|
||||
*/
|
||||
public FileServiceBaseTest(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
@ -261,7 +270,7 @@ public class FileServiceBaseTest extends RSEBaseConnectionTestCase {
|
|||
*
|
||||
* @param target the file to create
|
||||
* @param content content of the new file
|
||||
* @throws CoreException
|
||||
* @throws CoreException in case of failure
|
||||
*/
|
||||
protected void createFile(IFileStore target, String content) throws CoreException {
|
||||
target.delete(EFS.NONE, null);
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008 Wind River Systems, Inc. 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
|
||||
*
|
||||
* Contributors:
|
||||
* Johnson Ma (Wind River) - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
/**
|
||||
* this class is used to test tgz and .tar.gz archive function
|
||||
*/
|
||||
public class FileServiceTgzArchiveTest extends FileServiceArchiveBaseTest {
|
||||
|
||||
public FileServiceTgzArchiveTest(String name) {
|
||||
super(name);
|
||||
tarSourceFileName1 = "source.tar.gz";
|
||||
tarSourceFileName2 = "mynewtar.tgz";
|
||||
tarSourceForOpenTest = "tarSourceForOpen.TAR.gz";
|
||||
testName = "dummy.tGz";
|
||||
}
|
||||
|
||||
}
|
|
@ -8,6 +8,7 @@
|
|||
* Contributors:
|
||||
* Martin Oberhuber (Wind River) - initial API and implementation
|
||||
* Martin Oberhuber (Wind River) - organize, enable and tag test cases
|
||||
* Johnson Ma (Wind River) - [195402] Add tar.gz archive support
|
||||
*******************************************************************************/
|
||||
package org.eclipse.rse.tests.subsystems.files;
|
||||
|
||||
|
@ -54,6 +55,7 @@ public class RSEFileSubsystemTestSuite extends DelegatingTestSuiteHolder {
|
|||
// we run in problems with that. The test needs to be executed manually with
|
||||
// the ftp server to use possibly changed to whatever host will do.
|
||||
suite.addTestSuite(FTPFileSubsystemTestCase.class);
|
||||
suite.addTestSuite(FileServiceTgzArchiveTest.class);
|
||||
|
||||
return suite;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue