diff -r 90d02f574c3c project.libraries/src/org/netbeans/modules/project/libraries/LibrariesStorage.java --- a/project.libraries/src/org/netbeans/modules/project/libraries/LibrariesStorage.java Mon Dec 01 15:30:17 2008 +0100 +++ b/project.libraries/src/org/netbeans/modules/project/libraries/LibrariesStorage.java Mon Dec 01 17:40:59 2008 +0100 @@ -72,12 +72,15 @@ import org.openide.filesystems.FileUtil; import org.openide.filesystems.Repository; import org.openide.util.NbBundle; +import org.openide.util.Task; +import org.openide.util.TaskListener; import org.openide.xml.XMLUtil; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @org.openide.util.lookup.ServiceProvider(service=org.netbeans.spi.project.libraries.LibraryProvider.class) -public class LibrariesStorage extends FileChangeAdapter implements WritableLibraryProvider { +public class LibrariesStorage extends FileChangeAdapter +implements WritableLibraryProvider, TaskListener { private static final String NB_HOME_PROPERTY = "netbeans.home"; //NOI18N private static final String LIBRARIES_REPOSITORY = "org-netbeans-api-project-libraries/Libraries"; //NOI18N @@ -206,6 +209,7 @@ } this.loadFromStorage(); this.storage.addFileChangeListener (this); + LibraryTypeRegistry.getDefault().addTaskListener(this); initialized = true; } } @@ -564,4 +568,15 @@ return sb.toString(); } + public void taskFinished(Task task) { + if (initialized) { + HashMap clone; + clone = new HashMap(libraries); + loadFromStorage(); + if (!clone.equals(libraries)) { + fireLibrariesChanged(); + } + } + } + } diff -r 90d02f574c3c project.libraries/test/unit/src/org/netbeans/modules/project/libraries/LibrariesStorageTest.java --- a/project.libraries/test/unit/src/org/netbeans/modules/project/libraries/LibrariesStorageTest.java Mon Dec 01 15:30:17 2008 +0100 +++ b/project.libraries/test/unit/src/org/netbeans/modules/project/libraries/LibrariesStorageTest.java Mon Dec 01 17:40:59 2008 +0100 @@ -174,7 +174,7 @@ } } - private static void registerLibraryTypeProvider () throws Exception { + static void registerLibraryTypeProvider () throws Exception { StringTokenizer tk = new StringTokenizer("org-netbeans-api-project-libraries/LibraryTypeProviders","/"); FileObject root = Repository.getDefault().getDefaultFileSystem().getRoot(); while (tk.hasMoreElements()) { @@ -192,7 +192,7 @@ } } - private static void createLibraryDefinition (final FileObject storageFolder, final String libName) throws IOException { + static void createLibraryDefinition (final FileObject storageFolder, final String libName) throws IOException { storageFolder.getFileSystem().runAtomicAction(new FileSystem.AtomicAction() { public void run () throws IOException { FileObject defFile = storageFolder.createData(libName,"xml"); @@ -222,7 +222,7 @@ }); } - private static class TestListener implements PropertyChangeListener { + static class TestListener implements PropertyChangeListener { private List eventNames = new ArrayList(); @@ -241,7 +241,7 @@ } - private static class TestEntityCatalog extends EntityCatalog { + static class TestEntityCatalog extends EntityCatalog { private static final String DTD = "\n" + "\n" +