]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleModuleSourceRepository.java
Fixing a deadlock. Some improvements to ModuleSourceRepository API
[simantics/platform.git] / bundles / org.simantics.scl.osgi / src / org / simantics / scl / osgi / internal / BundleModuleSourceRepository.java
index 31d06b72619399ffbb9d8f9b4666c2c468303bdd..b3f5ac319122941c621ae89420558ba9ef3e3b2d 100644 (file)
@@ -2,6 +2,7 @@ package org.simantics.scl.osgi.internal;
 
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Enumeration;
 
 import org.osgi.framework.Bundle;
@@ -14,16 +15,14 @@ import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.util.tracker.BundleTracker;
 import org.simantics.scl.compiler.module.repository.UpdateListener;
 import org.simantics.scl.compiler.source.ModuleSource;
-import org.simantics.scl.compiler.source.repository.AbstractModuleSourceRepository;
 import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
 
 import gnu.trove.map.hash.THashMap;
 import gnu.trove.procedure.TObjectObjectProcedure;
-import gnu.trove.procedure.TObjectProcedure;
 import gnu.trove.set.hash.THashSet;
 
 @Component
-public class BundleModuleSourceRepository extends AbstractModuleSourceRepository implements ModuleSourceRepository {
+public class BundleModuleSourceRepository implements ModuleSourceRepository {
     
     Tracker tracker;
     THashMap<String, BundleModuleSource> modules = new THashMap<String, BundleModuleSource>();
@@ -107,8 +106,13 @@ public class BundleModuleSourceRepository extends AbstractModuleSourceRepository
     }
 
     @Override
-    synchronized public void forAllModules(TObjectProcedure<String> procedure) {
-        modules.forEachKey(procedure);
+    public synchronized Collection<String> getModuleNames() {
+        return new ArrayList<String>(modules.keySet());
+    }
+    
+    @Override
+    public synchronized Collection<String> getDocumentationNames() {
+        return new ArrayList<String>(documentations.keySet());
     }
     
     @Override
@@ -119,12 +123,7 @@ public class BundleModuleSourceRepository extends AbstractModuleSourceRepository
         else
             return source.getText();
     }
-
-    @Override
-    synchronized public void forAllDocumentations(TObjectProcedure<String> procedure) {
-        documentations.forEachKey(procedure);
-    }
-
+    
     @Override
     public void checkUpdates() {
         synchronized(this) {