if (name.startsWith("OSGI-INF/metatype/")) {
if (name.endsWith(XML_SUFFIX)) {
MetaDataReader reader = new MetaDataReader();
InputStream in = jarFile.getInputStream(entry);
if (in != null) {
MetaData metadata = reader.parse(in);
if (metadata != null) {
String pid = name.substring(0, name.length() - XML_SUFFIX.length());
metadataMap.put(pid, metadata);
}
}
} else if (name.endsWith(PROPERTIES_SUFFIX)) {
String pid = name.substring(0, name.length() - PROPERTIES_SUFFIX.length());
Properties properties = new Properties();
InputStream in = jarFile.getInputStream(entry);
if (in != null) {
properties.load(in);
propertiesMap.put(pid, properties);
}
}
}
}
Set<Map.Entry<String, MetaData>> metadataEntries = metadataMap.entrySet();
for (Map.Entry<String, MetaData> metadataEntry : metadataEntries) {
String pid = metadataEntry.getKey();
MetaData metadata = metadataEntry.getValue();
Properties properties = propertiesMap.get(pid);
if (properties == null) {
properties = new Properties();
}
handler.invoke(metadata, properties);