private static void appendMultiKahaDbStore()

in activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/kahadb/exporter/Exporter.java [177:206]


    private static void appendMultiKahaDbStore(final ArtemisJournalMarshaller xmlMarshaller,
            final MultiKahaDBPersistenceAdapter multiAdapter, final ExportConfiguration config) throws Exception {
        try {
            multiAdapter.start();

            List<KahaDBExporter> dbExporters = multiAdapter.getAdapters().stream()
                    .filter(adapter -> adapter instanceof KahaDBPersistenceAdapter)
                    .map(adapter -> {
                        KahaDBPersistenceAdapter kahaAdapter = (KahaDBPersistenceAdapter) adapter;
                        return new KahaDBExporter(kahaAdapter,
                              new ArtemisXmlMetadataExporter(kahaAdapter.getStore(), xmlMarshaller, config),
                              new ArtemisXmlMessageRecoveryListener(kahaAdapter.getStore(), xmlMarshaller));
            }).collect(Collectors.toList());

            xmlMarshaller.appendBindingsElement();
            for (KahaDBExporter dbExporter : dbExporters) {
                dbExporter.exportMetadata();
            }
            xmlMarshaller.appendEndElement();

            xmlMarshaller.appendMessagesElement();
            for (KahaDBExporter dbExporter : dbExporters) {
                dbExporter.exportQueues(config.getQueuePattern());
                dbExporter.exportTopics(config.getTopicPattern());
            }
            xmlMarshaller.appendEndElement();
        } finally {
            multiAdapter.stop();
        }
    }