? 43189.diff
? a.diff
? actions/src/org/openide/resources
Index: loaders/src/org/openide/loaders/DataFolder.java
===================================================================
RCS file: /cvs/openide/loaders/src/org/openide/loaders/DataFolder.java,v
retrieving revision 1.30
diff -u -r1.30 DataFolder.java
--- loaders/src/org/openide/loaders/DataFolder.java 5 Aug 2004 12:36:01 -0000 1.30
+++ loaders/src/org/openide/loaders/DataFolder.java 17 Aug 2004 10:17:24 -0000
@@ -21,6 +21,7 @@
import java.io.File;
import java.lang.ref.*;
import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.*;
import javax.swing.Action;
import javax.swing.UIManager;
@@ -34,9 +35,11 @@
import org.openide.filesystems.*;
import org.openide.util.HelpCtx;
import org.openide.nodes.*;
+import org.openide.options.SystemOption;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.openide.util.RequestProcessor;
+import org.openide.util.SharedClassObject;
/** A folder containing data objects.
* Is actually itself a data object, whose primary (and only) file object
@@ -147,6 +150,27 @@
throw new IllegalArgumentException ("Not folder: " + fo); // NOI18N
}
list = reassignList (fo, attach);
+
+ // if this is not DefaultFS then start listening on IDESettings
+ try {
+ if (!isDefaultFS()) {
+ initGlobalSorting();
+ if (ideSettings != null && getSortingMethod != null) {
+ ideSettings.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ if ("sorting".equals(evt.getPropertyName())) { //NOI18N
+ list.changeComparator();
+ firePropertyChange (PROP_SORT_MODE, null, null);
+ }
+ }
+ });
+ }
+ }
+ } catch (IOException e) {
+ ErrorManager.getDefault().log(ErrorManager.WARNING, e.toString());
+ // OK, no sorting
+ }
+
}
/** Attaches a listener to the folder list, removes any previous one if registered.
@@ -191,6 +215,9 @@
* @exception IOException if the mode cannot be set
*/
public synchronized final void setSortMode (SortMode mode) throws IOException {
+ if (!isDefaultFS()) {
+ throw new IOException("Order can be set only on DefaultFileSystem DataFolders."); // NOI18N
+ }
SortMode old = getOrder ().getSortMode ();
getOrder ().setSortMode (mode);
firePropertyChange (PROP_SORT_MODE, old, getOrder ().getSortMode ());
@@ -218,10 +245,61 @@
*
*/
public synchronized final void setOrder (DataObject[] arr) throws IOException {
+ if (!isDefaultFS()) {
+ throw new IOException("Order can be set only on DefaultFileSystem DataFolders."); // NOI18N
+ }
getOrder ().setOrder (arr);
firePropertyChange (PROP_ORDER, null, null);
}
+
+ private boolean isDefaultFS() throws IOException {
+ return getPrimaryFile().getFileSystem().equals(Repository.getDefault().getDefaultFileSystem());
+ }
+
+ // XXX: find IDESettings and read the global sort mode.
+ // Ugly, but there is no other way. Should be resolved once
+ // we have Settings API.
+ static SortMode getGlobalSorting() {
+ try {
+ if (ideSettings != null && getSortingMethod != null) {
+ return (SortMode)getSortingMethod.invoke(ideSettings, new Object[0]);
+ }
+ } catch (Exception e) {
+ // ignore, default sorting will be used
+ ErrorManager.getDefault().log(ErrorManager.WARNING, e.toString());
+ }
+ return SortMode.FOLDER_NAMES;
+ }
+
+ // XXX: find IDESettings and read the global sort mode.
+ // Ugly, but there is no other way. Should be resolved once
+ // we have Settings API.
+ static synchronized void initGlobalSorting() {
+ try {
+ if (!globalSortingInitialized) {
+ globalSortingInitialized = true;
+ ClassLoader l = (ClassLoader) Lookup.getDefault().lookup(ClassLoader.class);
+ Class clazz = l.loadClass("org.netbeans.core.IDESettings"); // NOI18N
+ ideSettings = (SystemOption)SharedClassObject.findObject(clazz, true);
+ if (ideSettings != null) {
+ getSortingMethod = clazz.getMethod("getSorting", null); // NOI18N
+ assert getSortingMethod != null;
+ }
+ }
+ } catch (Exception e) {
+ ErrorManager.getDefault().notify(e);
+ }
+ }
+ // IDESettings instance
+ private static SystemOption ideSettings;
+
+ // IDESettings.getSortingMethod() method
+ private static Method getSortingMethod;
+
+ // was IDESettings already initialized?
+ private static boolean globalSortingInitialized = false;
+
/** Getter for order object.
* @return order of children
*/
@@ -1128,6 +1206,14 @@
*/
protected Sheet createSheet () {
Sheet s = super.createSheet ();
+ try {
+ if (!DataFolder.this.isDefaultFS()) {
+ return s;
+ }
+ } catch (IOException ex) {
+ // something wrong: disable sorting
+ return s;
+ }
Sheet.Set ss = new Sheet.Set ();
ss.setName (SET_SORTING);
Index: loaders/src/org/openide/loaders/DataShadow.java
===================================================================
RCS file: /cvs/openide/loaders/src/org/openide/loaders/DataShadow.java,v
retrieving revision 1.11
diff -u -r1.11 DataShadow.java
--- loaders/src/org/openide/loaders/DataShadow.java 9 Jun 2004 20:33:52 -0000 1.11
+++ loaders/src/org/openide/loaders/DataShadow.java 17 Aug 2004 10:17:24 -0000
@@ -34,9 +34,17 @@
import org.openide.util.MutexException;
/** Default implementation of a shortcut to another data object.
-* Since 1.13 it extends MultiDataObject.
-* @author Jan Jancura, Jaroslav Tulach
-*/
+ * Since 1.13 it extends MultiDataObject.
+ *
Usage deprecation: usage of DataShadow on
+ * non-DefaultFileSystem is deprecated. Also a DataShadow on DefaultFileSystem
+ * can point only to file/folder on DefaultFileSystem. The main usage of
+ * DataShadow on client filesystems was in old project system which is now
+ * replaced by buildsystem. If there is somebody who still need this
+ * functionality they should think about Datasystems independent solution,
+ * because #1) Datasystems are planned for redesign and #2) after Settings
+ * API is implemented the DataShadow will be fully deprecated.
+ * @author Jan Jancura, Jaroslav Tulach
+ */
public class DataShadow extends MultiDataObject implements DataObject.Container {
/** generated Serialized Version UID */
static final long serialVersionUID = 6305590675982925167L;
@@ -238,6 +246,15 @@
private void init(DataObject original) {
if (original == null)
throw new IllegalArgumentException();
+ try {
+ if (!original.getPrimaryFile().getFileSystem().equals(
+ Repository.getDefault().getDefaultFileSystem())) {
+ ErrorManager.getDefault().log(ErrorManager.WARNING, "Usage of " +
+ "DataShadow on non-DefaultFileSystem was deprecated. Found: "+this); // NOI18N
+ }
+ } catch (FileStateInvalidException e) {
+ ErrorManager.getDefault().log(ErrorManager.WARNING, e.toString());
+ }
setOriginal (original);
enqueueDataShadow(this);
}
@@ -391,6 +408,7 @@
*/
protected static DataObject deserialize (FileObject fileObject) throws java.io.IOException {
URL url = readURL(fileObject);
+ checkDeprecatedUsage(fileObject, url);
FileObject fo = URLMapper.findFileObject(url);
if (fo == null) {
throw new java.io.FileNotFoundException (url.toExternalForm());
@@ -398,6 +416,14 @@
return DataObject.find (fo);
}
+ private static void checkDeprecatedUsage(FileObject fo, URL u) {
+ if (u != null && (!u.getProtocol().startsWith("nbfs"))) {
+ ErrorManager.getDefault().log(ErrorManager.WARNING, "Found " + // NOI18N
+ "DataShadow which points to a non-DefaultFileSystem file. " + // NOI18N
+ "Such a usage was deprecated. It is "+fo+" and it points to "+u); // NOI18N
+ }
+ }
+
static URL readURL(final FileObject f) throws IOException {
if ( f.getSize() == 0 ) {
Object fileName = f.getAttribute ("originalFile"); // NOI18N
@@ -562,6 +588,7 @@
private void tryUpdate() throws IOException {
URL url = readURL(getPrimaryFile ());
+ checkDeprecatedUsage(getPrimaryFile(), url);
if (url.equals(original.getPrimaryFile().getURL())) {
return;
}
Index: loaders/src/org/openide/loaders/FolderComparator.java
===================================================================
RCS file: /cvs/openide/loaders/src/org/openide/loaders/FolderComparator.java,v
retrieving revision 1.5
diff -u -r1.5 FolderComparator.java
--- loaders/src/org/openide/loaders/FolderComparator.java 21 Mar 2004 17:15:36 -0000 1.5
+++ loaders/src/org/openide/loaders/FolderComparator.java 17 Aug 2004 10:17:24 -0000
@@ -13,6 +13,9 @@
package org.openide.loaders;
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
+import java.io.Serializable;
import java.util.*;
import org.openide.filesystems.FileObject;
@@ -23,7 +26,7 @@
* Compares objects in a folder.
* @author Jaroslav Tulach, Jesse Glick
*/
-class FolderComparator extends DataFolder.SortMode implements Comparator {
+class FolderComparator extends DataFolder.SortMode implements Comparator, Serializable {
/** modes */
public static final int NONE = 0;
public static final int NAMES = 1;
@@ -37,6 +40,7 @@
/** by folders, then size */
public static final int SIZE = 5;
+ private static final long serialVersionUID = 3328227315468795461L;
/** mode to use */
private int mode;
@@ -211,4 +215,17 @@
}
}
+ private Object readResolve() throws ObjectStreamException {
+ switch (mode) {
+ case NONE: return DataFolder.SortMode.NONE;
+ case NAMES: return DataFolder.SortMode.NAMES;
+ case CLASS: return DataFolder.SortMode.CLASS;
+ case FOLDER_NAMES: return DataFolder.SortMode.FOLDER_NAMES;
+ case LAST_MODIFIED: return DataFolder.SortMode.LAST_MODIFIED;
+ case SIZE: return DataFolder.SortMode.SIZE;
+ default:
+ throw new InvalidObjectException("Cannot deserialize FolderComparator for mode "+mode); // NOI18N
+ }
+ }
+
}
Index: loaders/src/org/openide/loaders/FolderList.java
===================================================================
RCS file: /cvs/openide/loaders/src/org/openide/loaders/FolderList.java,v
retrieving revision 1.9
diff -u -r1.9 FolderList.java
--- loaders/src/org/openide/loaders/FolderList.java 9 Jun 2004 20:26:39 -0000 1.9
+++ loaders/src/org/openide/loaders/FolderList.java 17 Aug 2004 10:17:24 -0000
@@ -262,7 +262,7 @@
/** Setter for sort mode.
*/
- private synchronized void changeComparator () {
+ synchronized void changeComparator () {
final boolean LOG = err.isLoggable(ErrorManager.INFORMATIONAL);
if (LOG) err.log ("changeComparator on " + folder);
final RequestProcessor.Task previous = comparatorTask;
@@ -813,7 +813,7 @@
*/
private void fireChildrenChange (Collection add, Collection removed) {
if (pcs != null) {
- if (!add.isEmpty() || !removed.isEmpty()) {
+ if ((!add.isEmpty() || !removed.isEmpty()) && !add.equals(removed)) {
pcs.firePropertyChange (PROP_CHILDREN, null, null);
}
}
Index: loaders/src/org/openide/loaders/FolderOrder.java
===================================================================
RCS file: /cvs/openide/loaders/src/org/openide/loaders/FolderOrder.java,v
retrieving revision 1.4
diff -u -r1.4 FolderOrder.java
--- loaders/src/org/openide/loaders/FolderOrder.java 7 Jun 2004 08:28:09 -0000 1.4
+++ loaders/src/org/openide/loaders/FolderOrder.java 17 Aug 2004 10:17:24 -0000
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.util.*;
+import org.openide.ErrorManager;
import org.openide.filesystems.*;
import org.openide.loaders.DataFolder.SortMode;
@@ -27,7 +28,7 @@
*
* @author Jaroslav Tulach
*/
-final class FolderOrder extends Object implements Comparator {
+class FolderOrder extends Object implements Comparator {
/** Separator of names of two files. The first file should be before
* the second one in partial ordering
*/
@@ -207,7 +208,7 @@
/** Stores the order to files.
*/
- public void write () throws IOException {
+ private void write () throws IOException {
// Let it throw the IOException:
//if (folder.getFileSystem ().isReadOnly ()) return; // cannot write to read-only FS
if (order == null) {
@@ -393,6 +394,15 @@
* @return the order
*/
public static FolderOrder findFor (FileObject folder) {
+ try {
+ if (!folder.getFileSystem().equals(Repository.getDefault().getDefaultFileSystem())) {
+ return getGlobalOrdering();
+ }
+ } catch (FileStateInvalidException ex) {
+ // something wrong, return global order
+ ErrorManager.getDefault().log(ErrorManager.WARNING, ex.toString());
+ return getGlobalOrdering();
+ }
FolderOrder order = null;
synchronized (map) {
Reference ref = (Reference)map.get (folder);
@@ -411,7 +421,40 @@
return order;
}
}
+
+ private static FolderOrder globalFolderOrder;
+
+ private static synchronized FolderOrder getGlobalOrdering() {
+ if (globalFolderOrder == null) {
+ globalFolderOrder = new GlobalFolderOrder();
+ }
+ return globalFolderOrder;
+ }
+
+ private static class GlobalFolderOrder extends FolderOrder {
+
+ private GlobalFolderOrder() {
+ super(null);
+ DataFolder.initGlobalSorting();
+ }
+
+ public void setSortMode(SortMode mode) throws IOException {
+ // ignore
+ }
+
+ public SortMode getSortMode() {
+ return DataFolder.getGlobalSorting();
+ }
+
+ public void setOrder(DataObject[] arr) throws IOException {
+ // ignore
+ }
-
+ public Map getOrderingConstraints(Collection objects) {
+ // ignore
+ return null;
+ }
+
+ }
}
Index: test/cfg-unit.xml
===================================================================
RCS file: /cvs/openide/test/cfg-unit.xml,v
retrieving revision 1.118
diff -u -r1.118 cfg-unit.xml
--- test/cfg-unit.xml 16 Aug 2004 15:06:02 -0000 1.118
+++ test/cfg-unit.xml 17 Aug 2004 10:17:26 -0000
@@ -208,6 +208,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java,v
retrieving revision 1.2
diff -u -r1.2 DataFolderSetOrderTest.java
--- test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java 24 Feb 2004 12:05:55 -0000 1.2
+++ test/unit/src/org/openide/loaders/DataFolderSetOrderTest.java 17 Aug 2004 10:17:26 -0000
@@ -16,19 +16,21 @@
import org.openide.filesystems.*;
import java.beans.*;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import junit.framework.AssertionFailedError;
import org.netbeans.junit.*;
+import org.openide.modules.ModuleInfo;
+import org.openide.util.Lookup;
/** Does a change in order on folder fire the right properties?
*
* @author Jaroslav Tulach
*/
-public class DataFolderSetOrderTest extends NbTestCase
-implements PropertyChangeListener {
+public class DataFolderSetOrderTest extends NbTestCase {
private DataFolder aa;
private DataFolder bb;
private ArrayList events = new ArrayList ();
@@ -38,61 +40,38 @@
super (name);
}
- public static void main (String[] args) throws Exception {
- junit.textui.TestRunner.run(new NbTestSuite (DataFolderSetOrderTest.class));
- }
-
- /** If execution fails we wrap the exception with
- * new log message.
- */
- protected void runTest () throws Throwable {
- ErrManager.messages.append ("Starting test ");
- ErrManager.messages.append (getName ());
- ErrManager.messages.append ('\n');
-
- try {
- super.runTest ();
- } catch (AssertionFailedError ex) {
- AssertionFailedError ne = new AssertionFailedError (ex.getMessage () + " Log:\n" + ErrManager.messages);
- ne.setStackTrace (ex.getStackTrace ());
- throw ne;
- }
- }
-
protected void setUp () throws Exception {
- System.setProperty("org.openide.util.Lookup", "org.openide.loaders.DataFolderSetOrderTest$Lkp");
- assertNotNull ("ErrManager has to be in lookup", org.openide.util.Lookup.getDefault ().lookup (ErrManager.class));
-
if (previous != null) {
previous.waitFinished ();
}
+ clearWorkDir();
+
+ AddLoaderManuallyHid.addRemoveLoader(DataLoader.getLoader(DataObjectInvalidationTest.SlowDataLoader.class), true);
- TestUtilHid.destroyLocalFileSystem (getName());
+ TestUtils.initDefaultFS(this);
String fsstruct [] = new String [] {
"AA/X.txt",
"AA/Y.txt",
"BB/X.slow",
};
+ TestUtils.createFilesOnDefaultFS(fsstruct);
- FileSystem lfs = TestUtilHid.createLocalFileSystem (getName (), fsstruct);
+ FileSystem lfs = Repository.getDefault().getDefaultFileSystem();
+ aa = DataFolder.findFolder (lfs.getRoot().getFileObject("AA"));
+ bb = DataFolder.findFolder (lfs.getRoot().getFileObject("BB"));
+ aa.addPropertyChangeListener (new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ events.add(evt.getPropertyName());
+ }
- aa = DataFolder.findFolder (lfs.findResource ("AA"));
- bb = DataFolder.findFolder (lfs.findResource ("BB"));
-
- aa.addPropertyChangeListener (this);
+ });
}
protected void tearDown () throws Exception {
- final DataLoader l = DataLoader.getLoader(DataObjectInvalidationTest.SlowDataLoader.class);
-
- aa.removePropertyChangeListener (this);
+ AddLoaderManuallyHid.addRemoveLoader(DataLoader.getLoader(DataObjectInvalidationTest.SlowDataLoader.class), false);
}
private void makeFolderRecognizerBusy () throws Exception {
- if (getName().indexOf ("Busy") < 0) {
- return;
- }
-
final DataLoader l = DataLoader.getLoader(DataObjectInvalidationTest.SlowDataLoader.class);
synchronized (l) {
// this will trigger bb.getChildren
@@ -109,14 +88,16 @@
// now the folder recognizer is blocked at least for 2s
}
- private void doTest () throws Exception {
+ private void doTest(boolean slow) throws Exception {
DataObject[] arr = aa.getChildren ();
assertEquals ("Two objects", 2, arr.length);
ArrayList l = new ArrayList (Arrays.asList (arr));
java.util.Collections.reverse (l);
- assertEquals ("No changes yet", 0, events.size ());
- makeFolderRecognizerBusy ();
+ assertEquals ("No changes yet "+events, 0, events.size ());
+ if (slow) {
+ makeFolderRecognizerBusy();
+ }
aa.setOrder ((DataObject[])l.toArray (new DataObject[0]));
DataObject[] narr = aa.getChildren ();
@@ -133,100 +114,12 @@
}
public void testReorderWithoutChecksWhenFolderReconizerIsBusy () throws Exception {
- doTest ();
+ doTest(true);
}
public void testReorderWithoutChecks () throws Exception {
- doTest ();
+ doTest(false);
}
- public void propertyChange (PropertyChangeEvent evt) {
- events.add (evt.getPropertyName ());
- }
-
- //
- // Our fake lookup
- //
- public static final class Lkp extends org.openide.util.lookup.AbstractLookup {
- public Lkp () {
- this (new org.openide.util.lookup.InstanceContent ());
- }
-
- private Lkp (org.openide.util.lookup.InstanceContent ic) {
- super (ic);
- ic.add (new ErrManager ());
- ic.add (new Pool ());
- }
- }
- //
- // Logging support
- //
- public static final class ErrManager extends org.openide.ErrorManager {
- public static final StringBuffer messages = new StringBuffer ();
-
- private String prefix;
-
- public ErrManager () {
- this (null);
- }
- public ErrManager (String prefix) {
- this.prefix = prefix;
- }
-
- public Throwable annotate (Throwable t, int severity, String message, String localizedMessage, Throwable stackTrace, java.util.Date date) {
- return t;
- }
-
- public Throwable attachAnnotations (Throwable t, org.openide.ErrorManager.Annotation[] arr) {
- return t;
- }
-
- public org.openide.ErrorManager.Annotation[] findAnnotations (Throwable t) {
- return null;
- }
-
- public org.openide.ErrorManager getInstance (String name) {
- if (
- name.startsWith ("org.openide.loaders.FolderList")
-// || name.startsWith ("org.openide.loaders.FolderInstance")
- ) {
- return new ErrManager ('[' + name + ']');
- } else {
- // either new non-logging or myself if I am non-logging
- return new ErrManager ();
- }
- }
-
- public void log (int severity, String s) {
- if (prefix != null) {
- messages.append (prefix);
- messages.append (s);
- messages.append ('\n');
- }
- }
-
- public void notify (int severity, Throwable t) {
- log (severity, t.getMessage ());
- }
-
- public boolean isNotifiable (int severity) {
- return prefix != null;
- }
-
- public boolean isLoggable (int severity) {
- return prefix != null;
- }
-
- } // end of ErrManager
-
- private static final class Pool extends DataLoaderPool {
-
- protected java.util.Enumeration loaders () {
- return new org.openide.util.enum.SingletonEnumeration (
- DataLoader.getLoader(DataObjectInvalidationTest.SlowDataLoader.class)
- );
- }
-
- } // end of Pool
}
Index: test/unit/src/org/openide/loaders/DataFolderTest.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/DataFolderTest.java,v
retrieving revision 1.21
diff -u -r1.21 DataFolderTest.java
--- test/unit/src/org/openide/loaders/DataFolderTest.java 16 May 2003 12:08:44 -0000 1.21
+++ test/unit/src/org/openide/loaders/DataFolderTest.java 17 Aug 2004 10:17:26 -0000
@@ -171,15 +171,14 @@
/** Tests whether children are updated immediatelly.
*/
public void testOrderInAtomicAction () throws Exception {
+ clearWorkDir();
+ TestUtils.initDefaultFS(this);
String fsstruct [] = new String [] {
"AA/",
};
+ TestUtils.createFilesOnDefaultFS(fsstruct);
- TestUtilHid.destroyLocalFileSystem (getName());
- FileSystem lfs = TestUtilHid.createLocalFileSystem (getName (), fsstruct);
-
-
- DataFolder df = DataFolder.findFolder (lfs.findResource ("AA"));
+ DataFolder df = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("AA"));
int expected = 0;
int count = 5;
@@ -243,20 +242,16 @@
* layers on system filesystem.
*/
public void testOrderWhenAttributeIsChanged () throws Exception {
-// if (System.getProperty("netbeans.user") == null)
-// fail("Test can't run in this environment, use -Dxtest.mode=ide");
-
+ clearWorkDir();
+ TestUtils.initDefaultFS(this);
String fsstruct [] = new String [] {
"AA/AAA/",
"AA/BBB/",
"AA/CCC/"
};
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ DataFolder df = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("AA"));
- TestUtilHid.destroyLocalFileSystem (getName());
- FileSystem lfs = TestUtilHid.createLocalFileSystem (getName (), fsstruct);
-
-
- DataFolder df = DataFolder.findFolder (lfs.findResource ("AA"));
DataObject[] arr = df.getChildren ();
String append = "";
@@ -294,17 +289,16 @@
}
public void testOrderWhenSet () throws Exception {
+ clearWorkDir();
+ TestUtils.initDefaultFS(this);
String fsstruct [] = new String [] {
"AA/AAA/",
"AA/BBB/",
"AA/CCC/"
};
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ DataFolder df = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("AA"));
- TestUtilHid.destroyLocalFileSystem (getName());
- FileSystem lfs = TestUtilHid.createLocalFileSystem (getName (), fsstruct);
-
-
- DataFolder df = DataFolder.findFolder (lfs.findResource ("AA"));
DataObject[] arr = df.getChildren ();
DataObject[] rev = new DataObject [arr.length];
@@ -323,7 +317,10 @@
assertChildrenArrays ("", arr, df.getChildren (), false);
}
+ // XXX: rewrite this test somehow. only DefaultFS can be ordered now
+ /*
public void testOrderWhenMultiFileSystemSetDelegatesIsCalled () throws Exception {
+ clearWorkDir();
String fsstruct [] = new String [] {
"AA/AAA/",
"AA/BBB/",
@@ -371,40 +368,40 @@
assertTrue(l.gotSomething());
//System.out.println("df " + df.getPrimaryFile ().getAttribute (DataFolder.EA_ORDER));
assertChildrenArrays ("", arr, df.getChildren (), false);
- }
+ }*/
// #13820:
public void testOrderWhenFileRenamed() throws Exception {
- TestUtilHid.destroyLocalFileSystem(getName());
- FileSystem fs = TestUtilHid.createLocalFileSystem(getName(), new String[] {
+ clearWorkDir();
+ TestUtils.initDefaultFS(this);
+ String fsstruct [] = new String [] {
"folder/a1/",
"folder/b2/",
"folder/c3/",
- });
- DataFolder folder = DataFolder.findFolder(fs.findResource("folder"));
+ };
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ DataFolder folder = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("folder"));
+
assertEquals("initial order is alphabetical", "a1/b2/c3", childrenOrder(folder));
OrderListener l = new OrderListener();
folder.addPropertyChangeListener(l);
- DataObject.find(fs.findResource("folder/b2")).rename("d4");
+ DataObject.find(Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("folder/b2")).rename("d4");
assertTrue("Renaming a file fires PROP_CHILDREN on folder", l.gotSomething());
assertEquals("order after rename is still alphabetical", "a1/c3/d4", childrenOrder(folder));
}
public void testSortMode() throws Exception {
- TestUtilHid.destroyLocalFileSystem(getName());
- FileSystem fs = TestUtilHid.createLocalFileSystem(getName(), new String[] {
- "folder/a/",
- "folder/b.xml",
- "folder/c/",
- "folder/e.xml",
- "folder/d.instance",
- });
- assertTrue(fs.findResource("folder/a").isFolder());
- assertTrue(fs.findResource("folder/b.xml").isData());
- assertTrue(fs.findResource("folder/c").isFolder());
- assertTrue(fs.findResource("folder/e.xml").isData());
- assertTrue(fs.findResource("folder/d.instance").isData());
- DataFolder folder = DataFolder.findFolder(fs.findResource("folder"));
+ clearWorkDir();
+ TestUtils.initDefaultFS(this);
+ String fsstruct [] = new String [] {
+ "folder2/a/",
+ "folder2/b.xml",
+ "folder2/c/",
+ "folder2/e.xml",
+ "folder2/d.instance",
+ };
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ DataFolder folder = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("folder2"));
assertEquals("initial order is alphabetical, folders first", "a/c/b.xml/d.instance/e.xml", childrenOrder(folder));
folder.setSortMode(DataFolder.SortMode.NAMES);
assertEquals("next order is alphabetical", "a/b.xml/c/d.instance/e.xml", childrenOrder(folder));
Index: test/unit/src/org/openide/loaders/DataShadowBrokenSlownessTest.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/DataShadowBrokenSlownessTest.java,v
retrieving revision 1.2
diff -u -r1.2 DataShadowBrokenSlownessTest.java
--- test/unit/src/org/openide/loaders/DataShadowBrokenSlownessTest.java 12 May 2004 10:25:08 -0000 1.2
+++ test/unit/src/org/openide/loaders/DataShadowBrokenSlownessTest.java 17 Aug 2004 10:17:26 -0000
@@ -20,7 +20,6 @@
import java.util.Enumeration;
import org.openide.nodes.Node;
import org.openide.cookies.InstanceCookie;
-import org.openide.filesystems.Repository;
import org.netbeans.junit.*;
import org.openide.filesystems.*;
@@ -51,15 +50,18 @@
}
protected void setUp() throws Exception {
- TestUtilHid.destroyLocalFileSystem(getName());
- lfs = TestUtilHid.createLocalFileSystem(getName(), new String[] {
+ TestUtils.initDefaultFS(this);
+// TestUtilHid.destroyLocalFileSystem(getName());
+ String[] fsstruct = {
"shadows/",
"brokenshadows",
"folder/original.txt",
"folder/orig.txt",
"modify/"
- });
- Repository.getDefault ().addFileSystem (lfs);
+ };
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ lfs = Repository.getDefault().getDefaultFileSystem();
+// Repository.getDefault ().addFileSystem (lfs);
int count = getNumber ().intValue ();
@@ -125,8 +127,11 @@
protected void tearDown() throws Exception {
long now = System.currentTimeMillis ();
- Repository.getDefault ().removeFileSystem (lfs);
- TestUtilHid.destroyLocalFileSystem(getName());
+// Repository.getDefault ().removeFileSystem (lfs);
+// TestUtilHid.destroyLocalFileSystem(getName());
+// TestUtils.destroyDefaultFS(this);
+ lfs.findResource("shadows").delete();
+ lfs.getRoot().createFolder("shadows");
times.put (getNumber (), new Long (now - time));
Index: test/unit/src/org/openide/loaders/DataShadowSlowness39981Test.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/DataShadowSlowness39981Test.java,v
retrieving revision 1.2
diff -u -r1.2 DataShadowSlowness39981Test.java
--- test/unit/src/org/openide/loaders/DataShadowSlowness39981Test.java 12 May 2004 10:25:08 -0000 1.2
+++ test/unit/src/org/openide/loaders/DataShadowSlowness39981Test.java 17 Aug 2004 10:17:26 -0000
@@ -20,7 +20,6 @@
import java.util.Enumeration;
import org.openide.nodes.Node;
import org.openide.cookies.InstanceCookie;
-import org.openide.filesystems.Repository;
import org.netbeans.junit.*;
import org.openide.filesystems.*;
@@ -53,15 +52,17 @@
}
protected void setUp() throws Exception {
- TestUtilHid.destroyLocalFileSystem(getName());
- lfs = TestUtilHid.createLocalFileSystem(getName(), new String[] {
+ TestUtils.initDefaultFS(this);
+ String[] fsstruct = {
"shadows/",
"brokenshadows",
"folder/original.txt",
"folder/orig.txt",
"modify/"
- });
- Repository.getDefault ().addFileSystem (lfs);
+ };
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ lfs = Repository.getDefault().getDefaultFileSystem();
+// Repository.getDefault ().addFileSystem (lfs);
int count = getNumber ().intValue ();
@@ -127,8 +128,10 @@
protected void tearDown() throws Exception {
long now = System.currentTimeMillis ();
- Repository.getDefault ().removeFileSystem (lfs);
- TestUtilHid.destroyLocalFileSystem(getName());
+// Repository.getDefault ().removeFileSystem (lfs);
+// TestUtilHid.destroyLocalFileSystem(getName());
+ lfs.findResource("shadows").delete();
+ lfs.getRoot().createFolder("shadows");
times.put (getNumber (), new Long (now - time));
Index: test/unit/src/org/openide/loaders/DataShadowTest.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/DataShadowTest.java,v
retrieving revision 1.8
diff -u -r1.8 DataShadowTest.java
--- test/unit/src/org/openide/loaders/DataShadowTest.java 28 Jul 2004 14:21:49 -0000 1.8
+++ test/unit/src/org/openide/loaders/DataShadowTest.java 17 Aug 2004 10:17:26 -0000
@@ -46,8 +46,15 @@
}
protected void setUp() throws Exception {
- lfs = Repository.getDefault ().getDefaultFileSystem ();
- FileObject fo = FileUtil.createData (lfs.getRoot (), getName () + "/folder/original.txt");
+ TestUtils.initDefaultFS(this);
+ String[] fsstruct = {
+ "folder/original.txt",
+ "folder/orig.txt",
+ "modify/"
+ };
+ TestUtils.createFilesOnDefaultFS(fsstruct);
+ lfs = Repository.getDefault().getDefaultFileSystem();
+ FileObject fo = lfs.findResource("folder/original.txt");
assertNotNull(fo);
original = DataObject.find (fo);
assertFalse ("Just to be sure that this is not shadow", original instanceof DataShadow);
@@ -56,8 +63,6 @@
assertNotNull(fo);
assertTrue (fo.isFolder ());
folder = DataFolder.findFolder (fo);
-
- Repository.getDefault ().addFileSystem (lfs);
}
protected void tearDown() throws Exception {
@@ -153,7 +158,7 @@
shade = null;
assertGC ("Shadow can disappear", ref);
- original.rename ("newname");
+ original.rename ("newname2.txt");
DataObject obj = DataObject.find (primary);
Index: test/unit/src/org/openide/loaders/InstanceDataObjectTest.java
===================================================================
RCS file: /cvs/openide/test/unit/src/org/openide/loaders/InstanceDataObjectTest.java,v
retrieving revision 1.31
diff -u -r1.31 InstanceDataObjectTest.java
--- test/unit/src/org/openide/loaders/InstanceDataObjectTest.java 13 Aug 2004 16:43:59 -0000 1.31
+++ test/unit/src/org/openide/loaders/InstanceDataObjectTest.java 17 Aug 2004 10:17:27 -0000
@@ -129,7 +129,7 @@
try {
final FileObject primary = ido.getPrimaryFile();
System.err.println("Deleting file=" + primary);
- primary.delete(primary.lock());
+ primary.delete();
// XXX Testing the case event is fired.
// l.propertyChange(new PropertyChangeEvent(
Index: test/unit/src/org/openide/loaders/TestUtils.java
===================================================================
RCS file: test/unit/src/org/openide/loaders/TestUtils.java
diff -N test/unit/src/org/openide/loaders/TestUtils.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ test/unit/src/org/openide/loaders/TestUtils.java 17 Aug 2004 10:17:27 -0000
@@ -0,0 +1,51 @@
+/*
+ * Sun Public License Notice
+ *
+ * The contents of this file are subject to the Sun Public License
+ * Version 1.0 (the "License"). You may not use this file except in
+ * compliance with the License. A copy of the License is available at
+ * http://www.sun.com/
+ *
+ * The Original Code is NetBeans. The Initial Developer of the Original
+ * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun
+ * Microsystems, Inc. All Rights Reserved.
+ */
+
+package org.openide.loaders;
+
+import org.netbeans.junit.NbTestCase;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+import org.openide.filesystems.Repository;
+import org.openide.modules.ModuleInfo;
+import org.openide.util.Lookup;
+
+/** Misc utilities for easier testing.
+ * @author David Konecny
+ */
+public final class TestUtils {
+
+ private TestUtils() {}
+
+ public static void initDefaultFS(NbTestCase test) throws Exception {
+ System.setProperty("netbeans.user", test.getWorkDir().getAbsolutePath());
+// System.out.println(">>>>>"+test.getWorkDir().getAbsolutePath());
+ Lookup.getDefault().lookup(ModuleInfo.class);
+ }
+
+ public static void createFilesOnDefaultFS(String[] files) throws Exception {
+ FileObject folder = Repository.getDefault().getDefaultFileSystem().getRoot();
+ for (int i=0; i