Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Merks2015-11-20 10:32:11 +0000
committerThomas Watson2015-12-01 14:32:54 +0000
commitb1efdd4f1c5743718bc719082ad505a24458c925 (patch)
treee9fe4567aa665d83ca043fc60d60d403c53b9c58
parent3ec205e365e062eeaa6fad720ed40c3684fb567b (diff)
downloadrt.equinox.framework-b1efdd4f1c5743718bc719082ad505a24458c925.tar.gz
rt.equinox.framework-b1efdd4f1c5743718bc719082ad505a24458c925.tar.xz
rt.equinox.framework-b1efdd4f1c5743718bc719082ad505a24458c925.zip
Bug 482666 Make ModuleDatabase.Persistence.readGenericInfo() faster
Change-Id: I4f77f00c13da81585d181a7cbb8ed03bee31163c Signed-off-by: Ed Merks <ed.merks@gmail.com>
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java4
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleRevisionBuilder.java15
2 files changed, 17 insertions, 2 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
index 6d3a5bd4b..aa78ffa7f 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
@@ -1279,9 +1279,9 @@ public class ModuleDatabase {
Map<String, Object> attributes = readMap(in);
Map<String, ?> directives = readMap(in);
if (isCapability) {
- builder.addCapability(namespace, (Map<String, String>) directives, attributes);
+ builder.basicAddCapability(namespace, (Map<String, String>) directives, attributes);
} else {
- builder.addRequirement(namespace, (Map<String, String>) directives, attributes);
+ builder.basicAddRequirement(namespace, (Map<String, String>) directives, attributes);
}
}
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleRevisionBuilder.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleRevisionBuilder.java
index 1c12b17e3..e990c7e23 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleRevisionBuilder.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleRevisionBuilder.java
@@ -237,4 +237,19 @@ public final class ModuleRevisionBuilder {
private static <K, V> Map<K, V> copyUnmodifiableMap(Map<K, V> map) {
return Collections.unmodifiableMap(new HashMap<K, V>(map));
}
+
+ void basicAddCapability(String namespace, Map<String, String> directives, Map<String, Object> attributes) {
+ basicAddGenericInfo(capabilityInfos, namespace, directives, attributes);
+ }
+
+ void basicAddRequirement(String namespace, Map<String, String> directives, Map<String, Object> attributes) {
+ basicAddGenericInfo(requirementInfos, namespace, directives, attributes);
+ }
+
+ private static void basicAddGenericInfo(List<GenericInfo> infos, String namespace, Map<String, String> directives, Map<String, Object> attributes) {
+ if (infos == null) {
+ infos = new ArrayList<GenericInfo>();
+ }
+ infos.add(new GenericInfo(namespace, Collections.unmodifiableMap(directives), Collections.unmodifiableMap(attributes)));
+ }
}

Back to the top