in repository/service/src/main/java/org/apache/karaf/cave/repository/service/bundlerepository/StaxParser.java [86:119]
public static void write(XmlRepository repository, Writer os) throws XMLStreamException {
XMLStreamWriter writer = getOutputFactory().createXMLStreamWriter(os);
try {
writer.writeStartDocument();
writer.setDefaultNamespace(REPOSITORY_NAMESPACE);
// repository element
writer.writeStartElement(REPOSITORY_NAMESPACE, REPOSITORY);
writer.writeAttribute("xmlns", REPOSITORY_NAMESPACE);
writer.writeAttribute(REPO_NAME, repository.name);
writer.writeAttribute(INCREMENT, Long.toString(repository.increment));
// referrals
for (Referral referral : repository.referrals) {
writer.writeStartElement(REPOSITORY_NAMESPACE, REFERRAL);
writer.writeAttribute(DEPTH, Integer.toString(referral.depth));
writer.writeAttribute(URL, referral.url);
writer.writeEndElement();
}
// resources
for (Resource resource : repository.resources) {
writer.writeStartElement(REPOSITORY_NAMESPACE, RESOURCE);
for (Capability cap : resource.getCapabilities(null)) {
writeClause(writer, CAPABILITY, cap.getNamespace(), cap.getDirectives(), cap.getAttributes());
}
for (Requirement req : resource.getRequirements(null)) {
writeClause(writer, REQUIREMENT, req.getNamespace(), req.getDirectives(), req.getAttributes());
}
writer.writeEndElement();
}
writer.writeEndDocument();
writer.flush();
} finally {
writer.close();
}
}