public void save()

in vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/registry/impl/FSInstallState.java [332:391]


    public void save(OutputStream out) throws IOException {
        try (FormattingXmlStreamWriter writer = FormattingXmlStreamWriter.create(out, new OutputFormat(4, false))) {
            writer.writeStartDocument();
            writer.writeStartElement(TAG_REGISTRY_METADATA);
            writer.writeAttribute(ATTR_PACKAGE_ID, packageId.toString());
            writer.writeAttribute(ATTR_SIZE, Long.toString(size));
            if (installTime != null) {
                writer.writeAttribute(ATTR_INSTALLATION_TIME, Long.toString(installTime));
            }
            writer.writeAttribute(ATTR_FILE_PATH, filePath.toString());
            writer.writeAttribute(ATTR_EXTERNAL, Boolean.toString(external));
            writer.writeAttribute(ATTR_PACKAGE_STATUS, status.name().toLowerCase(Locale.ROOT));

            if (filter != null && !filter.getFilterSets().isEmpty()) {
                writer.writeStartElement(TAG_WORKSPACEFILTER);
                for (PathFilterSet pfs : filter.getFilterSets()) {
                    writer.writeStartElement(TAG_FILTER);
                    writer.writeAttribute(ATTR_ROOT, pfs.getRoot());
                    for (Entry<PathFilter> pf : pfs.getEntries()) {
                        writer.writeStartElement(TAG_RULE);
                        DefaultPathFilter dpf = (DefaultPathFilter) pf.getFilter();
                        if (pf.isInclude()) {
                            writer.writeAttribute(ATTR_INCLUDE, dpf.getPattern());
                        } else {
                            writer.writeAttribute(ATTR_EXCLUDE, dpf.getPattern());
                        }
                        writer.writeEndElement();
                    }
                    writer.writeEndElement();
                }
                writer.writeEndElement();
            }
            if (dependencies != null) {
                for (Dependency dependency : dependencies) {
                    writer.writeStartElement(TAG_DEPENDENCY);
                    writer.writeAttribute(ATTR_PACKAGE_ID, dependency.toString());
                    writer.writeEndElement();
                }
            }
            if (subPackages != null) {
                for (java.util.Map.Entry<PackageId, Option> entry : subPackages.entrySet()) {
                    writer.writeStartElement(TAG_SUBPACKAGE);
                    writer.writeAttribute(ATTR_PACKAGE_ID, entry.getKey().toString());
                    writer.writeAttribute(ATTR_SUBPACKAGE_HANDLING_OPTION, entry.getValue().toString());
                    writer.writeEndElement();
                }
            }
            if (properties.size() > 0) {
                writer.writeStartElement(TAG_PACKAGEPROPERTIES);
                for (String key : properties.stringPropertyNames()) {
                    writer.writeAttribute(key, properties.getProperty(key));
                }
                writer.writeEndElement();
            }
            writer.writeEndElement();
            writer.writeEndDocument();
        } catch (XMLStreamException e) {
            throw new IllegalStateException(e);
        }
    }