[FELIX-3609] Optimization: cache BundleRevision's types
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1365506 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java b/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
index 5a4e3b3..ee613ec 100644
--- a/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
@@ -56,6 +56,7 @@
private final String m_manifestVersion;
private final boolean m_isExtension;
+ private final boolean m_isFragment;
private final String m_symbolicName;
private final Version m_version;
@@ -95,6 +96,7 @@
m_manifestVersion = null;
m_symbolicName = null;
m_isExtension = false;
+ m_isFragment = false;
m_version = null;
m_declaredCaps = Collections.EMPTY_LIST;
m_declaredReqs = Collections.EMPTY_LIST;
@@ -136,6 +138,7 @@
: ManifestParser.parseDelimitedString(mp.getActivationIncludeDirective(), ",");
m_symbolicName = mp.getSymbolicName();
m_isExtension = mp.isExtension();
+ m_isFragment = m_headerMap.containsKey(Constants.FRAGMENT_HOST);
}
static SecureAction getSecureAction()
@@ -247,12 +250,8 @@
public int getTypes()
{
- if ((getManifestVersion() == "2")
- && getHeaders().containsKey(Constants.FRAGMENT_HOST))
- {
- return BundleRevision.TYPE_FRAGMENT;
- }
- return 0;
+ return getManifestVersion() == "2" && m_isFragment
+ ? BundleRevision.TYPE_FRAGMENT : 0;
}
public BundleWiring getWiring()