ProvidedExtensions.fileLock
and ProvidedExtensions.fileUnlock
was added.
+ ProvidedExtensions.fileLock
which is called after
+ MasterFileSystem
locks FileObject
+
+ ProvidedExtensions.fileUnlock
which is called after
+ FileObject
is unlocked.
+
ProvidedExtensions.beforeChange
was added.MasterFileSystem
after FileObject
+ * is locked
+ * @see org.openide.filesystems.FileObject#lock
+ * @param fo file which was locked
+ * @since 1.11
+ */
+ public void fileLocked(FileObject fo) {}
+
+ /*
+ * Called by MasterFileSystem
after FileLock
+ * is released
+ * @see org.openide.filesystems.FileLock#releaseLock
+ * @param fo file which FileLock
was released
+ * @since 1.11
+ */
+ public void fileUnlocked(FileObject fo) {}
}
Index: src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java
*** /space/work/auui/openide/masterfs/src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java Base (1.5)
--- /space/work/auui/openide/masterfs/src/org/netbeans/modules/masterfs/ProvidedExtensionsProxy.java Locally Modified (Based On 1.5)
***************
*** 147,153 ****
--- 147,174 ----
}
}
}
+
+ public void fileLocked(FileObject fo) {
+ for (Iterator it = annotationProviders.iterator(); it.hasNext();) {
+ AnnotationProvider provider = (AnnotationProvider) it.next();
+ InterceptionListener iListener = (provider != null) ? provider.getInterceptionListener() : null;
+ if (iListener instanceof ProvidedExtensions) {
+ ((ProvidedExtensions)iListener).fileLocked(fo);
}
+ }
+ }
+
+ public void fileUnlocked(FileObject fo) {
+ for (Iterator it = annotationProviders.iterator(); it.hasNext();) {
+ AnnotationProvider provider = (AnnotationProvider) it.next();
+ InterceptionListener iListener = (provider != null) ? provider.getInterceptionListener() : null;
+ if (iListener instanceof ProvidedExtensions) {
+ ((ProvidedExtensions)iListener).fileUnlocked(fo);
+ }
+ }
+ }
+ }
Index: test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java
*** /space/work/auui/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java Base (1.7)
--- /space/work/auui/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java Locally Modified (Based On 1.7)
***************
*** 83,88 ****
--- 83,105 ----
super(testName);
}
+ public void testImplsFileLock() throws IOException {
+ FileObject fo = FileUtil.toFileObject(getWorkDir());
+ assertNotNull(fo);
+ assertNotNull(iListener);
+ FileObject toLock = fo.createData(getName());
+ assertNotNull(toLock);
+ assertEquals(0, iListener.implsFileLockCalls);
+ FileLock fLock = toLock.lock();
+ try {
+ assertTrue(fLock.isValid());
+ assertEquals(0, iListener.implsFileUnlockCalls);
+ assertEquals(1, iListener.implsFileLockCalls);
+ } finally {
+ fLock.releaseLock();
+ assertEquals(1, iListener.implsFileUnlockCalls);
+ }
+ }
public void testImplsBeforeChange() throws IOException {
FileObject fo = FileUtil.toFileObject(getWorkDir());
***************
*** 398,403 ****
--- 415,422 ----
private int renameImplCalls;
private int implsBeforeChangeCalls;
private int implsCreateSuccessCalls;
+ private int implsFileLockCalls;
+ private int implsFileUnlockCalls;
private static boolean implsMoveRetVal = true;
private static boolean implsRenameRetVal = true;
***************
*** 412,419 ****
--- 431,450 ----
renameImplCalls = 0;
implsBeforeChangeCalls = 0;
implsCreateSuccessCalls = 0;
+ implsFileLockCalls = 0;
}
+ public void fileLocked(FileObject fo) {
+ super.fileLocked(fo);
+ implsFileLockCalls++;
+ }
+
+ public void fileUnlocked(FileObject fo) {
+ super.fileUnlocked(fo);
+ implsFileUnlockCalls++;
+ }
+
+
public void createSuccess(FileObject fo) {
super.createSuccess(fo);
implsCreateSuccessCalls++;