This repository was archived by the owner on Apr 15, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
This repository was archived by the owner on Apr 15, 2025. It is now read-only.
Create rule "Local message queue or message hub" #4
Copy link
Copy link
Closed
Description
This rule highlights use of on-premises message queues which will need replaced with Azure alternatives such as Azure Service Bus or Azure Storage Queues. Specific patterns for identifying these vary based on the specific dependencies, but the most common are:
- Use of the
RabbitMQ.Clientnamespace which would indicate use of a local RabbitMQ instance. - Use of the
MassTransit.Bus.Factory.CreateUsingRabbitMqAPI which also indicates RabbitMQ use. - Use of
Microsoft.ServiceBus.MessagingAPIs with a connection string of the formsb://<host>/<namespace>(as opposed tosb://<namespace>.servicebus.windows.net). This one is a bit nuanced becauseMicrosoft.ServiceBus.Messagingmight be used to connect to either on-premises Service Bus instances or Azure-hosted ones, and only on-premises service bus usage is problematic.
These metadata are interesting to both Azure App Service and containerized targets.
Java specific things to review:
- Usage of JMS, look for javax.jms package usage
- Usage of Apache MQ / Rabbit MQ clients or other 3rd party clients
Existing WindUp Rules
- https://github.com/windup/windup-rulesets/blob/master/rules/rules-reviewed/azure/springboot/spring-boot-to-azure-jms-broker.windup.xml
- https://github.com/windup/windup-rulesets/blob/master/rules/rules-reviewed/azure/springboot/spring-boot-to-azure-mq-config.windup.xml
- https://github.com/windup/windup-rulesets/blob/master/rules/rules-reviewed/technology-usage/connect.windup.groovy
Existing Azure Documentation
- https://learn.microsoft.com/en-us/azure/developer/java/migration/migrate-tomcat-to-tomcat-app-service#inventory-external-resources
- https://learn.microsoft.com/azure/developer/java/migration/migrate-spring-boot-to-azure-spring-apps#jms-message-brokers
- https://docs.microsoft.com/azure/service-bus-messaging/service-bus-messaging-overview
- https://azure.microsoft.com/solutions/messaging-services
WindUp Discovered Messaging Services
The connect.windup.groovy technology rule already checks for:
- ActiveMQ
- RabbitMQ
- Spring Messaging Client
- Amazon SQS Client
- HornetQ Client
- AMQP Client
- RocketMQ Client
- 0MQ Client
- JBossMQ Client
- Kafka Client
Supported Azure Messaging Services
### PRs
- [ ] https://github.com/Azure/windup-rulesets/pull/53
- [ ] https://github.com/windup/windup-rulesets/pull/979
- [ ] https://github.com/Azure/windup-rulesets/pull/114
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done