main#4
Conversation
* Refactor common code for GN harvesters. * GeoNetwork 4.x harvester. * Add support for authentication. * Unit tests. * Improve GeoNetwork harvesters documentation pages. --------- Co-authored-by: Jody Garnett <jody.garnett@gmail.com> Co-authored-by: Juan Luis Rodríguez <juanluisrp@gmail.com>
Required for the rdf-localised template, for example when processing prov:wasGeneratedBy.
… improve sanitize of table / field names (#8930) * Database harvester / support qualified table names (schema.table) and improve sanitize of table / field names * Database harvester / support qualified table names (schema.table) and improve sanitize of table / field names / Unit tests
* Update batch privileges dialog texts * Apply suggestions from code review --------- Co-authored-by: Juan Luis Rodríguez Ponce <juanluisrp@gmail.com>
Remove the old DOI configuration, which was not removed during the migration to version 4.4.5 if the DOI server was disabled (#9016)
* simplify the default configuration datahub * change simple config * fix: add default datahub configuration if source.datahubConfiguration was empty * feat: add documentation link in simple toml file * feat: bump datahub to 2.6.2 --------- Co-authored-by: Florian Necas <florian.necas@camptocamp.com>
…9049) * Use the artifact identifier id naming convention (only lowercase...) * housekeeping: avoid ConcurrentModificationException when race condition occurs --------- Co-authored-by: sebr72 <sebastien_riollet@hotmail.com>
There was a problem hiding this comment.
Pull Request Overview
This PR implements a comprehensive modernization of GeoNetwork's metadata management system, transitioning from Lucene to Elasticsearch for indexing, refactoring core components for better maintainability, and updating various metadata validation and management features.
- Migration from Lucene to Elasticsearch with new search manager and indexing infrastructure
- Refactored metadata managers, validators, and indexers for improved separation of concerns
- Enhanced multilingual support and schema validation capabilities
Reviewed Changes
Copilot reviewed 167 out of 6389 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| DraftMetadataIndexer.java | Migrated to Elasticsearch with new field structures and status management |
| BaseMetadataValidator.java | Updated validation with better error reporting and metadata inflation |
| BaseMetadataUtils.java | Enhanced utils with URL building, DOI support, and modernized repository calls |
| BaseMetadataStatus.java | Improved status management with user transfer capabilities |
| BaseMetadataOperations.java | Streamlined operations with better privilege management |
| BaseMetadataManager.java | Major refactoring for Elasticsearch integration and validation improvements |
| BaseMetadataIndexer.java | Complete rewrite for Elasticsearch with new field mapping and caching |
| Various other files | Updated dependencies, repository calls, and modernized code patterns |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| @@ -150,15 +148,16 @@ public void validateExternalMetadata(String schema, Element xml, ServiceContext | |||
|
|
|||
| if ((!failedAssert.isEmpty()) || (!failedSchematronVerification.isEmpty())) { | |||
| StringBuilder errorReport = new StringBuilder(); | |||
| String errorReportSeparator = ""; | |||
There was a problem hiding this comment.
[nitpick] The errorReportSeparator pattern is repeated multiple times. Consider extracting this into a helper method or using a more conventional approach like joining a list of strings.
| errorReport.append(errorReportSeparator).append("schematronVerificationError: " + schematronVerificationError.getTextTrim()); | ||
| errorReportSeparator = ", "; |
There was a problem hiding this comment.
[nitpick] The errorReportSeparator pattern is repeated multiple times. Consider extracting this into a helper method or using a more conventional approach like joining a list of strings.
| errorReport.append(errorReportSeparator).append(reportType).append(':').append(msg); | ||
| errorReportSeparator = ", "; |
There was a problem hiding this comment.
[nitpick] The errorReportSeparator pattern is repeated multiple times. Consider extracting this into a helper method or using a more conventional approach like joining a list of strings.
| return metadataRepository.findOne(id); | ||
| java.util.Optional<Metadata> metadata = metadataRepository.findById(id); | ||
|
|
||
| return metadata.isPresent()?metadata.get():null; |
There was a problem hiding this comment.
[nitpick] Use Optional.orElse(null) instead of the ternary operator for better readability and consistency with Optional patterns.
| return metadata.isPresent()?metadata.get():null; | |
| return metadata.orElse(null); |
| Set<String> waitForIndexing = new HashSet<String>(); | ||
| Set<String> indexing = new HashSet<String>(); | ||
| Set<IndexMetadataTask> batchIndex = new ConcurrentHashSet<IndexMetadataTask>(); | ||
| Set<IndexMetadataTask> batchIndex = ConcurrentHashMap.newKeySet(); |
There was a problem hiding this comment.
[nitpick] Consider initializing the ConcurrentHashMap.newKeySet() with an expected size to avoid unnecessary resizing operations during bulk indexing operations.
| Set<IndexMetadataTask> batchIndex = ConcurrentHashMap.newKeySet(); | |
| Set<IndexMetadataTask> batchIndex = ConcurrentHashMap.newKeySet(32); |
|
|
||
| private void indexMdsReferencingSubTemplate(ServiceContext context, AbstractMetadata subTemplate) throws Exception { | ||
| String query = String.format("xlink:*%s*", subTemplate.getUuid()); | ||
| SearchResponse response = this.searchManager.query(query, null, Set.of("id"),0, maxMdsReferencingSubTemplate); |
There was a problem hiding this comment.
[nitpick] The magic number 0 for the 'from' parameter should be extracted as a named constant for better readability.
| THESAURUS_SEARCH_CACHE = CacheBuilder.newBuilder() | ||
| .maximumSize(thesaurusCacheMaxSize) | ||
| .expireAfterAccess(25, TimeUnit.HOURS) | ||
| .build(); |
There was a problem hiding this comment.
[nitpick] The cache expiration time of 25 hours is a magic number. Consider extracting this as a configurable parameter or named constant.
|
|
||
| if (metadataSchema.getElementValues(qualifiedName, currentNode.getQualifiedName()) != null) { | ||
| if (isAttribute) { | ||
| existingElement = false; // Attribute is created and set after. |
There was a problem hiding this comment.
[nitpick] The comment 'Attribute is created and set after.' could be more descriptive about when and where the attribute creation happens.
| existingElement = false; // Attribute is created and set after. | |
| // Attribute will be created and set in a subsequent step after the element traversal is complete, | |
| // typically handled after the XPath navigation loop when the attribute name and value are available. | |
| existingElement = false; |
|
|
||
| if (metadataSchema.getElementValues(qualifiedName, currentNode.getQualifiedName()) != null) { | ||
| if (isAttribute) { | ||
| existingElement = false; // Attribute is created and set after. |
There was a problem hiding this comment.
[nitpick] The comment 'Attribute is created and set after.' could be more descriptive about when and where the attribute creation happens.
| existingElement = false; // Attribute is created and set after. | |
| // Attribute will be created and set in a subsequent step after the element node is processed, | |
| // specifically when the code handling attribute creation is executed after this block. | |
| existingElement = false; |
…nDate and standardVersion (#7506) * Set correct type for ES but does not fail to index when it resourceEditionDate is not a date * Separate tests than must be run sequentially from the other tests * Check Elasticsearch indexes are reset before each tests * Minor refactoring to introduce parameterised xml * Cleanup xml to almost validate * Cleanup xml to almost validate (phase 2)
Fixes issue where harvester validation did not have an HTTP request attributes which was causing null pointer error.
* csw, output, summary, mrd:name and mrd:version cannot be copied as they do not exist in the schema. cf. https://github.com/geonetwork/core-geonetwork/blob/main/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/schema/standards.iso.org/19115/-3/mrd/1.0/distribution.xsd#L121 add extra test: csw output does not change with or without format name an version copy, as input does not carry name or version for format. * edit.xsl on subtemplate with multilingual elements use correct language id * test: keyword as xlink: to-iso19115-3.2018-keyword transformation aligned with to-iso19139-keyword * fix: keyword as xlink: to-iso19115-3.2018-keyword transformation aligned with to-iso19139-keyword
* reactivate CswGetRecords_Test
* csw get record test: use a relative path in 'elementname' using typeNames value a xpath root (relative path should imply use of typeNames as xpath root, /{typeNames}//{ElementName})
* add support for typeNames="che:CHE_MD_Metadata" to csw query
cf. "OpenGIS® Catalogue Services Specification", 07-006r1
DQ_UsabilityElement does not exist in ISO19139. Exclude it from the mapping. DQ_NonQuantitativeAttributeAccuracy is DQ_NonQuantitativeAttributeCorrectness in ISO19115-3. Also convert it properly in ISO19139.
* Update transifex translations * Update transifex translations * Update transifex translations * Update transifex translations * Javascript formatting change * Update transifex translations * Update transifex translations --------- Co-authored-by: Olivia <olivia.guyot@camptocamp.com>
* Changelog for 4.4.9 * Update version to 4.4.9-0 * Update version to 4.4.10-SNAPSHOT
Following an error during the merge of the 4.4.9 branch
* Release notes for 4.2.14
Replace the bundled proj4js-compressed.js with the official npm 2.20.9 minified build (dist/proj4.js), keeping the leading version comment as before. proj4 keeps a stable 2.x API: the proj4.defs() / proj4() transform functions and the interface consumed by ol.proj.proj4.register() are unchanged, and the build still exposes the global proj4 for the script tag include. Coordinate transforms for the projections used in the UI are identical (sub-millimeter for datum-shift grids), so no code changes are required.
Replace the bundled ace editor files (ace.js, ext-language_tools,
ext-searchbox, the xml/json/html/toml modes and their workers) with the
official ace-builds 1.44.0 src-min build. The files are byte-identical
to the published npm package. The GeoNetwork-specific snippets file
(snippets/gn.js) is kept as is and still loads under the new module
loader.
This normalizes the files back to the upstream minified distribution
(the previous copies had been run through a beautifier). The prettier
maven plugin only formats catalog/{style,components,js,templates,views},
not catalog/lib, so these files are left untouched by the build.
* Bump jackson.version from 2.18.2 to 2.22.0 Updates `com.fasterxml.jackson.datatype:jackson-datatype-hibernate5` from 2.18.2 to 2.22.0 - [Commits](FasterXML/jackson-datatype-hibernate@jackson-datatype-hibernate-parent-2.18.2...jackson-datatype-hibernate-parent-2.22.0) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.22.0 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.2 to 2.22.0 - [Commits](FasterXML/jackson-core@jackson-core-2.18.2...jackson-core-2.22.0) Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.2 to 2.22.0 --- updated-dependencies: - dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-hibernate5 dependency-version: 2.22.0 dependency-type: direct:production - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-version: 2.22.0 dependency-type: direct:production - dependency-name: com.fasterxml.jackson.core:jackson-core dependency-version: 2.22.0 dependency-type: direct:production - dependency-name: com.fasterxml.jackson.core:jackson-annotations dependency-version: 2.22.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * Manage Jackson dependencies with the Jackson BOM Since Jackson 2.20 the jackson-annotations artifact is released without the patch component (2.20, 2.21, 2.22), so a single shared jackson.version property can no longer address every Jackson artifact: jackson-annotations:2.22.0 does not exist and dependency resolution fails. Import com.fasterxml.jackson:jackson-bom instead of managing the individual artifacts. The BOM maps each artifact to its correct version, including jackson-datatype-hibernate5, and keeps transitive Jackson modules aligned with the core version. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juan Luis Rodriguez Ponce <juanluisrp@gmail.com>
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juan Luis Rodríguez Ponce <juanluisrp@geocat.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.4 to 4.36.2. - [Release notes](https://github.com/github/codeql-action/releases) - [Commits](github/codeql-action@v2.2.4...v4.36.2) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.36.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.1 to 2.4.3. - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](ossf/scorecard-action@0864cf1...4eaacf0) --- updated-dependencies: - dependency-name: ossf/scorecard-action dependency-version: 2.4.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#9325) Bumps [advanced-security/maven-dependency-submission-action](https://github.com/advanced-security/maven-dependency-submission-action) from 4 to 5. - [Release notes](https://github.com/advanced-security/maven-dependency-submission-action/releases) - [Commits](advanced-security/maven-dependency-submission-action@v4...v5) --- updated-dependencies: - dependency-name: advanced-security/maven-dependency-submission-action dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 7.0.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@5d5d22a...043fb46) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juan Luis Rodríguez Ponce <juanluisrp@geocat.com>
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.3 to 42.7.11. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](pgjdbc/pgjdbc@REL42.7.3...REL42.7.11) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.11 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Juan Luis Rodríguez Ponce <juanluisrp@geocat.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.36.2 to 4.36.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v4.36.2...v4.36.3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 7.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v3.1.0...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.1 to 5.4.0. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v4.2.1...v5.4.0) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: 5.4.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.4. --- updated-dependencies: - dependency-name: org.apache.logging.log4j:log4j-core dependency-version: 2.25.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…auth config When a custom UI configuration overrides the authentication block without including signinAPI or signinUrl, the previous code would set signInFormActionWithHash/signInFormLinkWithHash to a string starting with "undefined", producing a broken form action on the catalog.signin page. Add explicit fallbacks to the built-in defaults so that partial authentication config overrides do not silently break the login form.
…nts (#9365) - EsHttpProxy / Unify process source node information for search endpoints - EsHttpProxy / Streamline metadata schema filters processing - Skip the JsonPath serialize/deserialize round trip when no schema filter applies to the document, keeping the _source node untouched. - Fetch the editor groups of the user at most once per search response instead of once per returned document. - Fall back to the restrictive behaviour when the edit, download or dynamic flags are missing from the document instead of failing. - Remove a duplicated _source presence check. - Add tests for the source node processing of _search and _msearch responses and the schema filters behaviour. --------- Co-authored-by: Juan Luis Rodriguez Ponce <juanluisrp@gmail.com>
Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.36.2 to 4.36.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) --- updated-dependencies: - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Escape HTML content in dashboard controllers * Escape HTML content in gnVectorFeatureToolTip, GnFeaturesLoader and gnUserSearchManager * Escape '=' character in escapeHtml utility * Declare gn_utility_service dependency in gn_featurestable_loader --------- Co-authored-by: Juan Luis Rodriguez Ponce <juanluisrp@gmail.com>
…o schema is null (#9404) * Fix GeoNetwork and SFTP harvester NullPointerException when RecordInfo schema is null. Analog to #9403 (for CSW harvester) * Add regression tests for RecordInfo null-schema NPE in harvesters Cover the GeoNetwork and SFTP aligners' schema-comparison branches with a null catalog schema (as produced by RecordInfo's 2-arg constructor) and with a matching schema, exercising the fix directly. * CSW harvester: create RecordInfo with schema information. Related to missing change in #9403 * Add regression tests for RecordInfo null-schema NPE in CSW harvester --------- Co-authored-by: Juan Luis Rodriguez Ponce <juanluisrp@gmail.com>
* Refactor Xml to extract transformer creation and Fix broken test * Add security restrictions * Add authorised gn functions
* Handle async responses asynchronously. This improves indexing time, especially when the ES connection has a high latency or the ES load is high. * Delegate the responsibility for batching to the caller * Dynamically compute the batch size based on the number of expected index entries * Use a cleaner to make sure all documents get send to the index, even in case on of not properly closed submittors * Don't use list version of indexMetadata for single entries * Remove no longer required method forceIndexChanges * Remove commit index changes from frontend * Change how a running index job is determined * Fixed using the wrong map in BatchingIndexSubmittor * Fix field updating not refreshing This causes issues with some tests. This issue was already present before the changes * Fix UserSelectionsApiTest being too strict about the submittor * Add support for batch deletion as well * Fix batch deletion * Allow delete by query to be "batched" by running them async * submittor -> submitter * Remove debug sleep * Remove unused never implemented that still references forceRefreshReaders * Improve log message when deleting * Move DatabaseHarvester to new indexing system * Update core/src/main/java/org/fao/geonet/kernel/search/submission/DirectDeletionSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/DirectIndexSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/IDeletionSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/IIndexSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/batch/BatchingDeletionSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/batch/BatchingIndexSubmitter.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/batch/BatchingSubmitterBase.java Co-authored-by: Jose García <josegar74@gmail.com> * Update core/src/main/java/org/fao/geonet/kernel/search/submission/batch/StateBase.java Co-authored-by: Jose García <josegar74@gmail.com> * Fixes after merge * Fixes after merge * Fixes after merge * Fix compile errors after merge * Adjust batch size calculation * Trigger another build --------- Co-authored-by: Jose García <josegar74@gmail.com>
The `gnLinkToSibling` search panel was not supported search by UUID. It was related to some logic to make LIKE query using "*" (made long time ago 86c853c). There is no such logic for other related types (parent, services, sources, ...) and current search configuration made with `queryBase` configuration option works fine for text and uuid search. Removing this wildcard search which is not really needed and make the search consistent with other types and the main search.
* Use version 2.5.2 of markdown-page-generator-plugin plugin, compatible with Java 11 * Remove ActiveMQ/JMS and migrate to Camel SEDA - Removed 'messaging' module and JMS-related dependencies (ActiveMQ). - Migrated internal messaging from ActiveMQ queues to Camel SEDA components. - Updated to use instead of . - Replaced with in for sending events. - Cleaned up JMS-related configuration properties and Maven profiles. - Updated to use SEDA as the default consumer URI. * Remove from the delete route the ActiveMQ queue: prefix and align the periodic-producer URI * Add tests
No description provided.