HornetQ is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system.

Related tags

Messaging hornetq
Overview

HornetQ

If you need information about the HornetQ project please go to

http://community.jboss.org/wiki/HornetQ

http://www.jboss.org/hornetq/

This file describes some minimum 'stuff one needs to know' to get started coding in this project.

Source

The project's source code is hosted at:

https://github.com/hornetq

Git usage:

Pull requests should be merged without fast forwards '--no-ff'. An easy way to achieve that is to use

% git config branch.master.mergeoptions --no-ff

Branch

HornetQ is now in maintenance mode. the master / upstream for hornetq is now ActiveMQ Artemis

  • 2.3.x is the branch used for EAP.
  • 2.4.x was the branch used on Wildfly up until recently, Wildfly also moved to Artemis on newer releases
  • master has been discontinued
Comments
  • Lock contention in QueueImpl

    Lock contention in QueueImpl

    This is the follow up on https://github.com/hornetq/hornetq/pull/831 .

    I couldn't find a way to reopen the old PR, so a new one. And I got a bit lost with Git. I'm learning that on the fly here, so I hope everything went fine. Although I'm not 100% sure.

    In any case, I ran the test suite as specified with this change set and they all passed.

    opened by chamacie 18
  • ha policy changes and refactoring

    ha policy changes and refactoring

    This patch abstracts the different HA policy configurations into their own classes. This avoids having unrelated configuration elements in the same configuration class or xml chunk.

    Because of this the HornetQServerImpl class has been simplified by extracting the different Activations into their own class and moving into the Activation any code that is specific to the actual Activation. This should make it easier to extend or add any new Activation code.

    opened by andytaylor 16
  • Management Methods for first message timestamp

    Management Methods for first message timestamp

    This basically extends the getFirstMessageAsJSON() concept to extract just the timestamp.

    For large messages in particular, this is much more efficient than returning the whole message as JSON and then extracting the timestamp.

    I tested with JConsole and it is OK, but there are a few things that could be done differently, if anybody has an opinion on these things I don't mind changing them:

    • should getFirstMessageTimestamp() return a java.util.Date object, the Java way of doing things, or return a long, just like the message header?
    • when there are no messages in the queue, should the methods return null? There are two other possibilities that came to mind: if the return values are doubles, they could return NaN when the queue is empty. The other possibility is throwing IllegalStateException.

    I'd like to have this merged into 2.3.x as well, so I've tried to keep it as simple as possible.

    opened by dpocock 14
  • https://issues.jboss.org/browse/HORNETQ-1375 -- OpenWire protocol support

    https://issues.jboss.org/browse/HORNETQ-1375 -- OpenWire protocol support

    This is the first PR.

    Some Details about the Openwire Support Implementation

    OpenWire support implementation follows the mechanism HornetQ uses to support other protocols like AMQP and Stomp.

    The service factory is OpenWireProtocolManagerFactory which produces OpenWireProtocolManager.

    The OpenWireConnection class is responsible for the marshalling/unmarshalling of OpenWire Commands.

    The AMQSession and AMQConsumer wrap hornetq core sessions and consumers. Most message related commands like (message sending, delivering, acknowledges, and transactions) are processed here.

    The code has some util classes imported from ActiveMQ code base (either directly use or created from them if they are not in the activemq-client jars). They are used to hold some state informations about Openwire Connections/Sessions/Consumers/Transactions etc. Some of them may be redundant and Some may be used for ActiveMQ specific features (The first PR doesn't have much of them implemented yet). They may be cleaned up or enhanced as further works are added.

    Most of them are in package org.hornetq.core.protocol.openwire.amq.

    opened by gaohoward 12
  • Provide SSL information to Interceptor

    Provide SSL information to Interceptor

    My original need is to be able to identify message producer according to it's certificate. I'm doing it using an interceptor and setting a property to each message received.

    With the actual NettyConnection it's impossible to get any SSL related information so I added a getter.

    Possible improvement :

    • Resolve a complete different way to achieve it because interceptor are called for ALL message type.
    • return more or less information (SSLEngine, Certificate chain...)
    • Add this getter into Connection interface.

    Note: I found out using ChannelPipeline.get(Class handlerType) was better than ChannelPipeline.get(String name) so I've also edited NettyConnection.close() method.

    Here is what my interceptor looks like :

    public class HornetQInterceptor implements Interceptor{
    
        Logger log = Logger.getLogger(HornetQInterceptor.class);
    
        public boolean intercept(Packet msg, RemotingConnection con)
                throws HornetQException {
    
            if(msg instanceof SessionSendMessage){
                SSLSession sslSession = ((NettyConnection)con.getTransportConnection()).getSSLSession();
                if(sslSession != null)
                    try {
                        ((SessionSendMessage)msg).getMessage().putStringProperty("client.auth.dn", sslSession.getPeerCertificateChain()[0].getSubjectDN().getName());
                    } catch (SSLPeerUnverifiedException e) {
                        log.error(e.getMessage() + " Is NettyAcceptor's param need-client-auth set to true ?");
                    }
            }
            return true;
        }
    }
    
    opened by ghetolay 11
  • backport changes in pull request #1037 to 2.2.eap5 branch for JBPAPP-11049

    backport changes in pull request #1037 to 2.2.eap5 branch for JBPAPP-11049

    https://issues.jboss.org/browse/JBPAPP-11049 backport changes in pull request #1037 to 2.2.eap5 branch (only difference is that I did not add the test inside due to some api changes)

    opened by soul2zimate 9
  • fix occasional test failure

    fix occasional test failure

    blockOnAcknowledge should be true to avoid unacked messages being resent after live server crashes.

    Default this attribute is false. Meaning it's possible when server crashes the messages haven't been acknowledged on server. So after fail over those unacked messages are re-delivered to client, making the test (like testReplicationDuringSync) fail.

    opened by gaohoward 9
  • [GSS](6.4.z) HornetQ Client trying to use wrong keystore

    [GSS](6.4.z) HornetQ Client trying to use wrong keystore

    [HORNETQ-1237] Add a HornetQ-specific system property for setting the keystore and truststore path on the client BZ 6.4.x https://bugzilla.redhat.com/show_bug.cgi?id=1288578 pr to 2.3.x https://github.com/hornetq/hornetq/pull/2066 no upstream required

    opened by treblereel 8
  • Bug1431406 specific properties not removed from messages

    Bug1431406 specific properties not removed from messages

    In a cluster if a node is shut down (or crashed) when a message is being routed to a remote binding, a internal property may be added to the message and persisted. The name of the property is like _HQ_ROUTE_TOsf.my-cluster*. if the node starts back, it will reroute this message and if it goes to a local consumer, this property won't get removed and goes to the client.

    The fix is to remove this internal property before it is sent to any client.

    opened by gaohoward 7
  • HORNETQ-1417 OpenWire support -- Producer Flow Control

    HORNETQ-1417 OpenWire support -- Producer Flow Control

    Implement OpenWire producer flow control. Based on configuration, when a queue's memory space is full, the producer can either be blocked (via client side window size or server side blocking), or get a relevant failure exception. The details are given in this link:

    http://activemq.apache.org/producer-flow-control.html

    opened by gaohoward 7
  • Add missing checkstyle throws indentation setting

    Add missing checkstyle throws indentation setting

    Without this I see quite a few "method/ctor def throws at indentation level X not at correct indentation, Y" errors in Eclipse, seemingly for all throws statements that are placed on a new line.

    opened by scop 7
High Performance Inter-Thread Messaging Library

LMAX Disruptor A High Performance Inter-Thread Messaging Library Maintainer LMAX Development Team Support Open a ticket in GitHub issue tracker Google

LMAX Group 15.5k Jan 9, 2023
RocketMQ-on-Pulsar - A protocol handler that brings native RocketMQ protocol to Apache Pulsar

RocketMQ on Pulsar(RoP) RoP stands for RocketMQ on Pulsar. Rop broker supports RocketMQ-4.6.1 protocol, and is backed by Pulsar. RoP is implemented as

StreamNative 88 Jan 4, 2023
Apache Pulsar - distributed pub-sub messaging system

Pulsar is a distributed pub-sub messaging platform with a very flexible messaging model and an intuitive client API. Learn more about Pulsar at https:

The Apache Software Foundation 12.1k Jan 4, 2023
Powerful event-bus optimized for high throughput in multi-threaded applications. Features: Sync and Async event publication, weak/strong references, event filtering, annotation driven

MBassador MBassador is a light-weight, high-performance event bus implementing the publish subscribe pattern. It is designed for ease of use and aims

Benjamin Diedrichsen 930 Jan 6, 2023
SeaTunnel is a distributed, high-performance data integration platform for the synchronization and transformation of massive data (offline & real-time).

SeaTunnel SeaTunnel was formerly named Waterdrop , and renamed SeaTunnel since October 12, 2021. SeaTunnel is a very easy-to-use ultra-high-performanc

The Apache Software Foundation 4.4k Jan 2, 2023
MC Protocol specification of the current minecraft release / snapshot. Most useful when developing with ProtocolLib.

Snapshot 1.19.1-pre4 (1.19.1), Protocol 97 (1073741921), Release Protocol: 760 Handshaking (Server -> Client) Handshaking (Client -> Server) 0x00 - Cl

Pasqual Koschmieder 9 Dec 12, 2022
This is a very lightweight plugin for Velocity proxy. Have functions including tabList, pingList and global chat.

Essential-PlayerInfo This repo had been transported to our team, and will not be updated here. https://github.com/Team-Jackdaw/Essential-PlayerInfo In

Jonathan Hsu 2 Mar 4, 2022
This is a very lightweight plugin for Velocity proxy.

Essential-PlayerInfo Introduce This is a very lightweight plugin for Velocity proxy. Used API of Velocity 3.1.0, so it may only support Velocity versi

null 9 Nov 30, 2022
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. A pure

Ignite Realtime 2.3k Dec 28, 2022
Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.

Apache Camel Apache Camel is a powerful, open-source integration framework based on prevalent Enterprise Integration Patterns with powerful bean integ

The Apache Software Foundation 4.7k Dec 31, 2022
An XMPP server licensed under the Open Source Apache License.

Openfire About Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open

Ignite Realtime 2.6k Jan 3, 2023
An Open-Source, Distributed MQTT Message Broker for IoT.

MMQ broker MMQ broker 是一款完全开源,高度可伸缩,高可用的分布式 MQTT 消息服务器,适用于 IoT、M2M 和移动应用程序。 MMQ broker 完整支持MQTT V3.1 和 V3.1.1。 安装 MMQ broker 是跨平台的,支持 Linux、Unix、macOS

Solley 60 Dec 15, 2022
Demo project for Kafka Ignite streamer, Kafka as source and Ignite cache as sink

ignite-kafka-streamer **Description : Demo project for Kafka Ignite streamer, Kafka as source and Ignite cache as sink Step-1) Run both Zookeeper and

null 1 Feb 1, 2022
System Of E-Commerce

SystemOfECommerce System Of E-Commerce Simulation of Login the System With Google Account E-mail Verification Simulation Operation of Register To Syst

Barış Aslan 4 Jan 30, 2022
Evgeniy Khyst 54 Dec 28, 2022
EventStoreDB is the database for Event Sourcing. This repository provides a sample of event sourced system that uses EventStoreDB as event store.

Event Sourcing with EventStoreDB Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of

Evgeniy Khyst 53 Dec 15, 2022
Microservice-based online payment system for customers and merchants using RESTful APIs and message queues

Microservice-based online payment system for customers and merchants using RESTful APIs and message queues

Daniel Larsen 1 Mar 23, 2022
MemQ is a new PubSub system that augments Kafka

MemQ: An efficient, scalable cloud native PubSub system MemQ is a new PubSub system that augments Kafka at Pinterest. It uses a decoupled storage and

Pinterest 56 Dec 30, 2022
Open data platform based on flink. Now scaleph is supporting data integration with seatunnel on flink

scaleph The Scaleph project features data integration, develop, job schedule and orchestration and trys to provide one-stop data platform for develope

null 151 Jan 3, 2023