Coder Social home page Coder Social logo

rabbitmq-queue-management's Introduction

RabbitMQ Queue Management

Build Status Quality Gate Status

Application to list, delete and re-queue messages of queues.

Introduction

RabbitMQ does not provide tooling to re-queue or move messages out of the box. However this can by quite handy when working e.g. with dead letter queues/exchanges. This tool tries to close this gap. By offering the following features

  • List queues of a RabbitMQ
  • List messages of queues
  • Delete first or all message(s)
  • Move first or all message(s)
  • Re-queue first or all message(s)

As messages must not have a unique identifier in RabbitMQ this tools creates a checksum of the message and compares the checksum before applying move or delete operations on messages to avoid unintended changes.

To use the application the RabbitMQ Management Plugin has to be activated.

The application is based on Spring Boot. For more details please also consult the Spring Boot Documentation (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle).

The application is also provided as docker image on docker hub gessnerfl/rabbitmq-queue-management. To change configuration parameters the corresponding configuration values have to be specified as environment variables for the docker container. For details check the Spring Boot (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config) and docker documentation (https://docs.docker.com/engine/reference/run/#env-environment-variables).

Operations

The following paragraphs describe the different implementations in more details.

Delete

The delete operations applies the following steps:

  • Receive first message of queue
  • Ensure checksum matches
  • Confirm message

In case of any error send nack with re-queuing or simply close the channel so that the message remains in the queue.

In case of deleting all messages of the queue the purge operation of the HTTP API of RabbitMQ will be used instead of processing the messages

Move operations

The following steps are applied to move a message from one queue to another exchange and routing key:

  • Receive the first message of the queue
  • Ensure checksum matches
  • Activate Publisher Acknowledgement (https://www.rabbitmq.com/confirms.html)
  • Register return listener to ensure that the message can be delivered to the target queue
  • Append header to count requeue operations (x-rmqmgmt-move-count)
  • Publish message with its body and properties as mandatory to the given exchange name and routing key
  • Wait for confirmation
  • Ensure no basic.return was received by return listener

In case of any error send nack with re-queuing or simply close the channel so that the message remains in the queue.

In case of moving all messages in the queue will stop when an error occurs or the message was already processed in the same execution to prevent an endless loop.

Requeue operation

Requeue is only available for dead lettered messages. It is based on the x-death header with provides information about the exchange name and routing key which was used to publish the message initially.

The following steps are applied to requeue a message

  • Receive the first message of a queue
  • Ensure checksum matches
  • Ensure x-death header with exchange name and routing key is available
  • Activate Publisher Acknowledgement (https://www.rabbitmq.com/confirms.html)
  • Register return listener to ensure that the message can be delivered to the target queue
  • Append header to count requeue operations (x-rmqmgmt-requeue-count)
  • Publish message with its body and properties as mandatory to the exchange name and routing key from x-death header
  • Wait for confirmation
  • Ensure no basic.return was received by return listener

In case of any error send nack with re-queuing or simply close the channel so that the message remains in the queue.

In case of re-queueing all messages in the queue will stop when an error occurs, a message does not contain an x-death header with a exchange and routing key or the message was already processed in the same execution to prevent an endless loop.

Configuration

As the application is based on Spring Boot the same rules applies to the configuration as described in the Spring Boot Documentation (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config).

The configuration file application.properties can be placed next to the application jar, in a sub-directory config or in any other location when specifying the location with the parameter -Dspring.config.location=<path to config file>.

The following paragraphs describe the application specific resp. pre-defined configuration parameters. If more configuration e.g. authentication is needed please check the Spring Boot Documentation for more detail.

RabbitMQ Connection setup

The following snippet shows the configuration of a RabbitMQ connection with its default values.

de:
  gessnerfl:
    rabbitmq:
      hostname: rabbitmq.mydomain.com  #The hostname of the rabbitmq host
      port: 5672                       #AMQP Port number
      managementPort: 15672            #RabbitMQ management port number
      managemnetPortSecured: false     #Indicator if the management interface is accessible via http (false) or https (true)
      username: guest                  #Username for connection to rabbitmq host
      password: guest                  #Password for connection to rabbitmq host
      useSsl: false                    #Enable SSL/TLS for the connection to RabbitMQ

Web UI

The following snippet shows the pre-defined web application configuration

server.port=8780     #Port of the web interface
management.port=8781 #Port of the http management api

rabbitmq-queue-management's People

Contributors

dependabot[bot] avatar gessnerfl avatar pymichaelb avatar tomazic89 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rabbitmq-queue-management's Issues

Cerate button for mass operations

h1. Story
As a system operator
I want to be able to move or delete all messages of a queue
So that I can work more efficiently with the tool

h1.Technical Details
So far moving messages is only supported on message level. This storry should provide the option to move all messages or delete all messages from a certain queue.
#6 should also be considered for the mass operations so that the user can either move all messages to a selected target or to the originating queue. The massoperation for x-death inforamtion should stop when:

  • a message does not contain the x-death option
  • the x-dath parameters (exchange or routing key) differ between messages

In case the operation stops the user should get a proper error message and the information how many messages have been moved.

Allow adding external libraries

Story

As a DevOps
I want to be able to add additional jars to the spring boot application through -Dloader.path
So that I can add e.g. a special logback appender when needed

Technical Details

So far the application is bundled as a standard spring boot application. Spring boot also allows the package layout ZIP which then allows users to add additional libraries to the class path. This story is about changing the packaging so that this option is provided to users.

Migrate to Java 11

Story

As a developer
I want to upgrade to Java 11
So that I can use the language features of Java 11
So that sonarcloud integration is not getting broken due to unsupported Java 8

Mark moved or requeued messages

h1.Story
As a system operator
I want to get an indicator if a message was already moved or requeued with the rabbitmq tooling
So that I can see in case of dead lettering if a message returns again back to the dead letter queue

h1.Technical Details
When moving/requeuing dead lettered messages it is not visible if a message which was moved/requeued by the UI is dead lettered again. Therefor a custom header should be added so that it is clear if a message was already moved/requeued or not.

Gradle fails with PKIX ssl cert errors

A problem occurred configuring root project 'rabbitmq-queue-management'.

Could not resolve all artifacts for configuration ':classpath'.
Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.2.5.RELEASE.
Required by:
project :
project : > org.springframework.boot:org.springframework.boot.gradle.plugin:2.2.5.RELEASE
> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-gradle-plugin/2.2.5.RELEASE/spring-boot-gradle-plugin-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-tools/2.2.5.RELEASE/spring-boot-tools-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-tools/2.2.5.RELEASE/spring-boot-tools-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-gradle-plugin/2.2.5.RELEASE/spring-boot-gradle-plugin-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-tools/2.2.5.RELEASE/spring-boot-tools-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-tools:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-tools/2.2.5.RELEASE/spring-boot-tools-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-parent:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.2.5.RELEASE/spring-boot-parent-2.2.5.RELEASE.pom
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://jcenter.bintray.com/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE.
> Could not parse POM https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://jcenter.bintray.com/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve io.rsocket:rsocket-bom:1.0.0-RC6.
> Could not get resource 'https://plugins.gradle.org/m2/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/io/rsocket/rsocket-bom/1.0.0-RC6/rsocket-bom-1.0.0-RC6.module?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Could not resolve org.sonarsource.scanner.api:sonar-scanner-api:2.14.0.2002.
Required by:
project : > org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api:2.14.0.2002.
> Could not parse POM https://jcenter.bintray.com/org/sonarsource/scanner/api/sonar-scanner-api/2.14.0.2002/sonar-scanner-api-2.14.0.2002.pom
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not parse POM https://jcenter.bintray.com/org/sonarsource/scanner/api/sonar-scanner-api-parent/2.14.0.2002/sonar-scanner-api-parent-2.14.0.2002.pom
> Could not resolve org.sonarsource.parent:parent:52.
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://jcenter.bintray.com/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://plugins.gradle.org/m2/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not parse POM https://plugins.gradle.org/m2/org/sonarsource/scanner/api/sonar-scanner-api-parent/2.14.0.2002/sonar-scanner-api-parent-2.14.0.2002.pom
> Could not resolve org.sonarsource.parent:parent:52.
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://jcenter.bintray.com/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://plugins.gradle.org/m2/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api:2.14.0.2002.
> Could not parse POM https://plugins.gradle.org/m2/org/sonarsource/scanner/api/sonar-scanner-api/2.14.0.2002/sonar-scanner-api-2.14.0.2002.pom
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not parse POM https://jcenter.bintray.com/org/sonarsource/scanner/api/sonar-scanner-api-parent/2.14.0.2002/sonar-scanner-api-parent-2.14.0.2002.pom
> Could not resolve org.sonarsource.parent:parent:52.
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://jcenter.bintray.com/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://plugins.gradle.org/m2/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.scanner.api:sonar-scanner-api-parent:2.14.0.2002.
> Could not parse POM https://plugins.gradle.org/m2/org/sonarsource/scanner/api/sonar-scanner-api-parent/2.14.0.2002/sonar-scanner-api-parent-2.14.0.2002.pom
> Could not resolve org.sonarsource.parent:parent:52.
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://jcenter.bintray.com/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not resolve org.sonarsource.parent:parent:52.
> Could not get resource 'https://plugins.gradle.org/m2/org/sonarsource/parent/parent/52/parent-52.pom'.
> Could not GET 'https://repo.jfrog.org/artifactory/libs-release-bintray/org/sonarsource/parent/parent/52/parent-52.pom?referrer'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Requeue dead lettered messages

h1.Story
As a system operator
I want to be able to re-queue dead lettered messages to its originating queue
So that I do not have to select the parameters manually when moving messages

h1.Technical Details
For dead lettered messages the originating exchange and routing key is available in x-death header. In this case requeuing the message can be supported by moving the message to its originating exchange and routing key. Thererfore the count needs to be considered so that the right x-death entry is selected.

With this in place the UI should be adopted such as that it provides:

  • A button to move messages to the originating exchange and routing key. This button should only be available when x-death is available
  • A button to move the message to a selected exchange + routing key (rename existing button to 'Move to ...')

Web UI is not able to handle LongString values properly

At the moment a message is not returned when it contains header parameters of type string. This is because they are internally mapped to a RabbitMq specific type LongString. This type is using a DataInputStream as underlying data structure.
The expected behaviour is that such messages return the correct header values on the UI represented as a String value

Supply a release version

Hey there,

is this project in a runnable state and can you release a compiled version if so?

Cheers

Add login support with LDAP

Story

As a system administrator
I want to be able to restrict access to the system
So that not everyone who has access to the system can apply changes

Technical Details

Currently there is no authentication available for this tool. With this change authentication through LDAP should be added. The authentication should be optional and should only apply when activated

Extend queue details in UI

h1.Story
As a system operator
I want that I can get more details about queues in the UI
So that I can better see which queues contain messages and if there a consumers which consume the messages

h1.Technical Details
The UI should be extended to show:

  • the number of messages
  • the number of consumers
  • the queue state

Remove LDAP support

The current implementation of LDAP support is not compatible with Spring Boot 3. As it is not used it will be deleted from the application.

Change system to connect to single rabbitmq cluster

To support several followup stories the system should be changed such as that it connect only to single RabbitMQ server/cluster.
The system should then list all queues of all virtual hosts in one list.

Bootstrap UI: migrate to v5

Hi,

I've noticed that while a Bootstrap version bump has been made to parts of the project, it has not been completed.

Two issues:

  1. While the webjars dependency in build.gradle has been changed from v4 to v5, not all HTML pages have incorporated this change - only index.html
  2. Some HTML pages require syntax change due to these version changes

This leads to some pages with styling that has been affected e.g.

index.html - version bump made, but syntax out of date
Bootstrap v4:
image

Bootstrap v5 without syntax upgrades:
image

messages.html - version bump not made, some syntax out of date as well
Bootstrap v4:
image

Bootstrap v5:
image

Improve Error Handling

h1.Story
As a user of the application
I want to get proper error messages in the UI
So that I know when something went wrong

h1.Technical details
So far no proper error handling is implemented in the application. Scope of this story is to add a proper error handling so that users get a proper message when something is not working properly.

Migrate UI technology

Story

As a developer
I want to migrate UI technology
So that we use modern and maintained libraries.

Technical Details

AngulasJS development is now already in LTS mode. This means that no new features will be provided but only fixes will be provided for version 1.7.x until June 2021.
Because of this the project should be migrated to use Angular, React, Vue, ... so that we can use modern development tooling and use the latest features.

Migrate to github actions

Story

As a developer
I want to migrate from travis ci to github actions
So that I get faster builds

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.