Java binding for ZeroMQ

Related tags

Messaging jzmq
Overview

What is JZMQ?

This is the Java language binding for libzmq (aka ZeroMQ, 0MQ).

Build Status

The latest javadocs.

Building and Installing JZMQ

To build you need to have the libzmq library already installed, then you run:

cd jzmq-jni/
./autogen.sh
./configure
make
make install
cd ..
mvn package

If you hope to install to your local maven, then you should run:

mvn install -Dgpg.skip=true

Building Windows 64bit with CMake & NMake

It is recommended to follow these steps with the Visual C++ 2015 Build Tools.

  1. create a new and empty directory:
d:\temp\>mkdir JZMQ
d:\temp\>cd JZMQ
d:\temp\JZMQ\>
  1. Clone the repository to your new directory
d:\temp\JZMQ\>git clone https://github.com/zeromq/jzmq.git
  1. dive into the checkedout repository and create a new build64 folder
d:\temp\JZMQ\>cd jzmq\jzmq-jni
d:\temp\JZMQ\jzmq\jzmq-jni\>mkdir build64
d:\temp\JZMQ\jzmq\jzmq-jni\>cd build64
  1. Now call CMake to generate the project
D:\temp\JZMQ\jzmq\jzmq-jni\build64>cmake .. -G "NMake Makefiles" -DZMQ_C_INCLUDE_PATH=<path to zmq include> -DZMQ_C_LIB_PATH=<path to zmq library>
-- The C compiler identification is MSVC 19.0.24210.0
-- The CXX compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Java: C:/Program Files/Java/jdk1.8.0_91/bin/java.exe (found version "1.8.0.91")
-- Found JNI: C:/Program Files/Java/jdk1.8.0_91/lib/jawt.lib
-- Configuring done
-- Generating done
-- Build files have been written to: D:/temp/JZMQ/jzmq/jzmq-jni/build64
  1. Now finally call NMake to build the zmq.jar and jzmq.lib, jzmq.dll
D:\temp\JZMQ\jzmq\jzmq-jni\build64>nmake
Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 10%] Generating config.hpp
[ 20%] Generating org/zeromq/ZMQ.class, org/zeromq/Utils.class, org/zeromq/ZMQ$$Context.class, org/zeromq/ZMQ$$Socket.class, org/zeromq/ZMQ$$PollItem.class, org/zeromq/ZMQ$$Poller.class, org/zeromq/ZM
Q$$Error.class, org/zeromq/ZMQException.class, org/zeromq/ZMQQueue.class, org/zeromq/ZMQForwarder.class, org/zeromq/ZMQStreamer.class, org/zeromq/EmbeddedLibraryTools.class, org/zeromq/App.class, org/
zeromq/ZContext.class, org/zeromq/ZDispatcher.class, org/zeromq/ZDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$2.class, org/zeromq/Z
Dispatcher$$SocketDispatcher$$ZMessageBuffer.class, org/zeromq/ZDispatcher$$SocketDispatcher.class, org/zeromq/ZDispatcher$$ZMessageHandler.class, org/zeromq/ZDispatcher$$ZSender.class, org/zeromq/ZFr
ame.class, org/zeromq/ZMsg.class, org/zeromq/ZLoop.class, org/zeromq/ZLoop$$IZLoopHandler.class, org/zeromq/ZLoop$$SPoller.class, org/zeromq/ZLoop$$STimer.class, org/zeromq/ZThread.class, org/zeromq/Z
Thread$$IAttachedRunnable.class, org/zeromq/ZThread$$IDetachedRunnable.class, org/zeromq/ZThread$$ShimThread.class
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[ 30%] Generating org_zeromq_ZMQ.h, org_zeromq_ZMQ_Error.h, org_zeromq_ZMQ_Context.h, org_zeromq_ZMQ_Socket.h, org_zeromq_ZMQ_PollItem.h, org_zeromq_ZMQ_Poller.h
[ 40%] Generating lib/zmq.jar
Scanning dependencies of target jzmq
[ 40%] Generating org/zeromq/ZMQ.class, org/zeromq/Utils.class, org/zeromq/ZMQ$$Context.class, org/zeromq/ZMQ$$Socket.class, org/zeromq/ZMQ$$PollItem.class, org/zeromq/ZMQ$$Poller.class, org/zeromq/ZM
Q$$Error.class, org/zeromq/ZMQException.class, org/zeromq/ZMQQueue.class, org/zeromq/ZMQForwarder.class, org/zeromq/ZMQStreamer.class, org/zeromq/EmbeddedLibraryTools.class, org/zeromq/App.class, org/
zeromq/ZContext.class, org/zeromq/ZDispatcher.class, org/zeromq/ZDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$2.class, org/zeromq/Z
Dispatcher$$SocketDispatcher$$ZMessageBuffer.class, org/zeromq/ZDispatcher$$SocketDispatcher.class, org/zeromq/ZDispatcher$$ZMessageHandler.class, org/zeromq/ZDispatcher$$ZSender.class, org/zeromq/ZFr
ame.class, org/zeromq/ZMsg.class, org/zeromq/ZLoop.class, org/zeromq/ZLoop$$IZLoopHandler.class, org/zeromq/ZLoop$$SPoller.class, org/zeromq/ZLoop$$STimer.class, org/zeromq/ZThread.class, org/zeromq/Z
Thread$$IAttachedRunnable.class, org/zeromq/ZThread$$IDetachedRunnable.class, org/zeromq/ZThread$$ShimThread.class
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[ 40%] Generating org_zeromq_ZMQ.h, org_zeromq_ZMQ_Error.h, org_zeromq_ZMQ_Context.h, org_zeromq_ZMQ_Socket.h, org_zeromq_ZMQ_PollItem.h, org_zeromq_ZMQ_Poller.h
[ 50%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Context.cpp.obj
Context.cpp
[ 60%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Poller.cpp.obj
Poller.cpp
D:\temp\JZMQ\jzmq\jzmq-jni\src\main\c++\Poller.cpp(76): warning C4244: '=': conversion from 'jint' to 'short', possible loss of data
[ 70%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Socket.cpp.obj
Socket.cpp
D:\temp\JZMQ\jzmq\jzmq-jni\src\main\c++\Socket.cpp(266): warning C4267: 'argument': conversion from 'size_t' to 'jsize', possible loss of data
D:\temp\JZMQ\jzmq\jzmq-jni\src\main\c++\Socket.cpp(272): warning C4267: 'argument': conversion from 'size_t' to 'jsize', possible loss of data
D:\temp\JZMQ\jzmq\jzmq-jni\src\main\c++\Socket.cpp(847): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
D:\temp\JZMQ\jzmq\jzmq-jni\src\main\c++\Socket.cpp(875): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
[ 80%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/util.cpp.obj
util.cpp
[ 90%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/ZMQ.cpp.obj
ZMQ.cpp
[100%] Linking CXX shared library lib\jzmq.dll
   Creating library lib\jzmq.lib and object lib\jzmq.exp
   Creating library lib\jzmq.lib and object lib\jzmq.exp
[100%] Built target jzmq

Avoiding JNI

JZMQ uses JNI to wrap libzmq for the best performance. If performance isn't your primary goal, look at the JeroMQ project, which is a pure Java implementation that provides an identical API to JZMQ, and uses the same protocol.

Building Packages

To build a Debian package, run:

$ dpkg-buildpackage -rfakeroot

To build an RPM package, run:

$ rpmbuild -tb jzmq-X.Y.Z.tar.gz

Where X.Y.Z is replaced with the version that you've downloaded.

If configure can't find your libzmq installation, you can tell it where to look, using e.g. --with-zeromq=/usr/local.

You may want to take a look at http://www.zeromq.org/docs:tuning-zeromq for additional hints.

For more information, refer to the ØMQ website at http://www.zeromq.org/.

On Mac OS X you may need to compile and make install pkg-config if configure fails with "syntax error near unexpected token newline".
See http://stackoverflow.com/questions/3522248/how-do-i-compile-jzmq-for-zeromq-on-osx for details.

You may also need to symlink the header files of your standard Java installation (e.g. /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers/*.h) into a suitable directory (e.g. /usr/local/include) and point the JAVA_HOME environment variable to the parent directory (e.g./usr/local).

Acknowledgements

YourKit is kindly supporting ZeroMQ project with its full-featured Java Profiler.

Copying

Free use of this software is granted under the terms of the GNU Lesser General Public License (LGPL). For details see the files COPYING and COPYING.LESSER included with the Java binding for ØMQ.

Comments
  • Tagging the stable versions?

    Tagging the stable versions?

    Hi,

    is there a stable version of this? Can you tag them respectively to zeroMQ versions? I mean if last stable version is 2.0.10 where can I find the java classes for that?

    I see you are using 2.1.0-SNAPSHOT in the sources already?

    thanx in advance

    opened by feci 22
  • Poller.poll() throws ZMQException when context is terminated

    Poller.poll() throws ZMQException when context is terminated

    I'm finally getting around to upgrading to jzmq-3.1.0 from 2.2.2, and have hit a snag in behavior of Poller. I think it has to do with commit e598f93, where the run_poll() method was changed to raise an error on return codes less than 0. For example:

    ...
    Poller poller = new Poller(1);
    poller.register(socket, Poller.POLLIN);
    while (!Thread.currentThread().isInterrupted()) {
      if (poller.poll() < 0)
        break;
      ...
    }
    

    Previously, this would cleanly exit the loop. Now, it throws an error and kills the thread.

    In a high level language binding like jzmq, I would expect the previous behavior instead of the new behavior. It seems like there should be no reason for every call to recv() or poll() to require try/catch. I can understand the call to recv() requiring it, but poll()?

    Is there a reason the behavior of throwing a ZMQException is better than detecting error codes and exiting cleanly? Can anyone suggest a superior idiom for cleanly exiting event loops? While I haven't tried ZLoop, I noticed that ZMQQueue and ZMQForwarder do use try/catch around the entire loop. However, ZLoop and ZDispatcher appear not to and may be broken, and I can't find anywhere in ZMsg and ZFrame where it is being done for you. This doesn't seem to be a compatibility issue with libzmq, though I admittedly know very little about the czmq language binding, so perhaps it is for compatibility with that library...?

    If someone can weigh in on the desired improvement that can be made (perhaps adding try/catch to ZFrame, etc.?), I would be happy to make the changes and open a pull request.

    opened by sjohnr 20
  • Provide java.nio.ByteBuffer-friendly send/recv API

    Provide java.nio.ByteBuffer-friendly send/recv API

    I had a thought while reviewing the source that the java.nio.ByteBuffer enhancements to Java 1.4 might be a better fit for the send/recv calls (or perhaps some variation on them).

    Given that ByteBuffer lets you directly use native heap you can avoid the need to memcpy messages to/from the managed heap.

    I know from the documentation that 0MQ is very focused on performance, so this enhancement could possibly boost the performance of the Java bindings (faster send/recv, use less managed heap, fewer GCs) and get them a bit closer to native performance.

    opened by jholloway7 15
  • Native library embedding fails on Windows when libzmq is compiled as a dynamic library

    Native library embedding fails on Windows when libzmq is compiled as a dynamic library

    Right now the jzmq.dll fails to load when using embedded libraries, unless you modify the ZeroMQ Visual Studio Project to change libzmq.dll to a static library and link jzmq.dll with the static library.

    Currently the embedded library logic does not add libzmq.dlll to the JAR. Nor does it attempt to unpack libzmq.dll before attempting to load jzmq.dll which fails because of the libzmq.dll dependency.

    opened by azverkan 14
  • Provide a tag for 2.1.0

    Provide a tag for 2.1.0

    Is it possible to create tags for the current version? In the spec file there is currently version 2.1.0. Would be nice if there was also a tag for that version.

    Would make our rpm building process a bit easier.

    opened by mfussenegger 13
  • Makefile should use option

    Makefile should use option "-encoding UTF-8" for calls to javac

    When I try to make in my system, I get the following error:

    Making all in src
    javac -d . org/zeromq/ZMQ.java org/zeromq/ZMQException.java org/zeromq/ZMQQueue.java org/zeromq/ZMQForwarder.java org/zeromq/ZMQStreamer.java org/zeromq/ZContext.java org/zeromq/ZFrame.java org/zeromq/ZMsg.java org/zeromq/ZThread.java org/zeromq/ZLoop.java org/zeromq/ZDispatcher.java org/zeromq/EmbeddedLibraryTools.java
    org/zeromq/ZMQ.java:187: error: unmappable character for encoding ASCII
         * Starts the built-in ??MQ proxy in the current application thread. The proxy connects a frontend socket to a
                               ^
    org/zeromq/ZMQ.java:187: error: unmappable character for encoding ASCII
         * Starts the built-in ??MQ proxy in the current application thread. The proxy connects a frontend socket to a
                                ^
    2 errors
    make[1]: *** [zmq.jar] Error 1
    make: *** [all-recursive] Error 1
    

    The encoding of the .java files seems to be utf-8, and when I manually run javac on th efiles with the option -encoding UTF-8, the files compile just fine.

    I'm not that experienced with Java so I'm not sure what the actual error is, but I guess encoding autodetection differs from platform to platform.

    I also tried to figure out how to patch the Makefile to do this but I couldn't figure it out, so I apologize for not posting a patch with this issue.

    opened by augustl 12
  • context.term() hangs even all the sockets created in the context are closed.

    context.term() hangs even all the sockets created in the context are closed.

    First I just want to thank you for the work of java binding of zmq, an amazing product!

    I am using zeromq-2.1.4 and jzmq snapshot of 04/17/2011 on Mac OSX. I am trying to use a thread pool to receive message. However, I have difficulties to shut the thread pool down and it always hangs when I call context.term(). I have code attached.

    I have read the doc regarding how to close the context cleanly, and I did close the connection before context.term(). But it doesn't seem to work for me.

    Question 1: when connect.close is called, what happens to the thread running connection.recv(0)? should it break first? Ideally, I see recv() throw error and unblock the thread is much easier to handle. Also, the doc said the recv will be able to get the signal and unblock itself. but it doesn't seem to work for java binding???

    Question 2: should each context be create for each thread (threadlocal)? I tried, and doesn't seem to work all the time, the behavior is rather unpredictable, i.e. most time either error out as mentioned below or hang, but 1 out of ten actually succeed).

    Question 3: The doc does mention it is bug that context.term will hange (http://zguide.zeromq.org/page:all#Making-a-Clean-Exit) but it kind alludes there is a workaround. Is this going to be fixed? Can context.term just unblock blocking calls of the socket and close all the connections underlying, so we don't have a chicken or egg problem here (e.g. recv(0) will block unless context.term() is called, but context.term() will block unless connection.close is called, and what happen to the recv(0)?).

    ---- code -----

    Here is a simplified test I wrote: public class TestWorker {

    private static final int BLOCK_FLAG = 0;
    ZMQ.Socket socket;
    ZMQ.Context context;
    @BeforeMethod
    public void beforeMethod() {
        context = ZMQ.context(1);
        socket = context.socket(ZMQ.PULL);
        socket.connect("tcp://localhost:5557");
    }
    
    @Test
    public void threadPoolTest() throws InterruptedException {
        ExecutorService executorService = Executors.newFixedThreadPool(3);
        final AtomicBoolean isRunning = new AtomicBoolean(true);
        //submit running task
        for (int i = 0; i < 3; i++) {
            executorService.submit(new Callable<Void>() {
                public Void call() throws Exception {
                     while (isRunning.get()) {
                         byte[] data = socket.recv(BLOCK_FLAG); //block
                         System.out.println(new String(data));
                     }
                    return null;   //thread is stopped.
                }
            });
        }
        Thread.sleep(5000L);//let's sleep for 5 sec so that everything is initialized.
        isRunning.set(false);//trying to stop the thread pool.
        socket.close();
        context.term();//NOTE: this never get unblocked. Or sometime just throw errors.
        executorService.shutdown(); //never reach here.
    }
    

    } The program usually hangs at term.

    --- If error occur, they are like the following, and then program exist. ad file descriptor nbytes != -1 (mailbox.cpp:242) Bad file descriptor nbytes != -1 (mailbox.cpp:242) Bad file descriptor nbytes != -1 (mailbox.cpp:242)

    opened by acidsolution 12
  • Mac OS X: java.lang.UnsatisfiedLinkError: no jzmq in java.library.path

    Mac OS X: java.lang.UnsatisfiedLinkError: no jzmq in java.library.path

    I've tried repeatedly installing jzmq on Mac OS X. Whatever I do, I hit a brick wall with this exception: java.lang.UnsatisfiedLinkError: no jzmq in java.library.path

    I have successfully installed (pkg-config and) libzmq and libjzmq into /usr/local/lib from today's github master branches. For jzmq, I did: ./autogen.sh && ./configure --with-zeromq=/usr/local/lib && make && sudo make install But setting java.library.path in any way, even manually at the start of my Java code, or even setting LD_LIBRARY_PATH, has no effect at all - I keep getting that UnsatisfiedLinkError.

    I would very much like to use jzmq for my projects, as I already have done a client and server implementation in Python and want to connect it to the Java world. (For the curious: http://gentlefn.github.com/gentle-tp-da92/)

    Versions:

    • libzmq and jzmq: current github master
    • Mac OS X: 10.6.6, up-to-date
    • Java (most recent JDK provided by Apple): 1.6.0_22-b04-307-10M3261
    opened by felixrabe 11
  • Can i use Jzmq  3.1.0 to develop ZMTP 3.0 CurveZMQ mechanism

    Can i use Jzmq 3.1.0 to develop ZMTP 3.0 CurveZMQ mechanism

    I am currently working on ZMTP3.0 CurveZMQ mechanism using jzmq libraries.so,i am having doubt that can i use jzmq-3.1.0 jar which is in maven central to build that security mechanism in my application like using ZAP for Ldap authentication kind of things. or i need any new jar (like next release jars for that )

    question 
    opened by RamakrishnaAddanki 9
  • JZMQ for Windows closes the application if the port/host is not available.

    JZMQ for Windows closes the application if the port/host is not available.

    JZMQ from GitHub (10.22.2013) (x64) ZeroMQ 3.2.4 (x64) (compiled with Visual Studio 2013 and 2012) Windows 8 (x64)

    Hello.

    I am experiencing a strange behavior of JZMQ. In Windows when ZMQ is trying read data in "recv" and host or port doesn't exist after some timeout (10-30sec) it closes without any exceptions or errors.

    If write equivalent code on C++ and libzmq. This bug not exist. It looks like the problem is in jzmq

    Example of code:


    import org.zeromq.ZContext;
    import org.zeromq.ZMQ;
    
    public class MyMainApp {
    
        public static void main(String[] args) {
    
            ZContext ctx = new ZContext();
            ZMQ.Socket s = ctx.createSocket(ZMQ.PULL);
    
            s.connect("tcp://172.16.255.5:55566");
    
            while(true) {
                String msg = new String( s.recv(0) );
                System.out.print( msg );
            }
        }
    }
    

    opened by ghost 9
  • Publish stable versioned artifacts

    Publish stable versioned artifacts

    In pom.xml, the version has changed from -SNAPSHOT to 1.0.0, but development on master has continued.

    This breaks dependency management, where versions are expected to be stable (and builds idempotent).

    It would probably be a good idea to start publishing built artifacts to a maven repo, either to one of the large public ones or a local one here on github (using pages works fine).

    opened by dln 9
  • connected but can not receive msgs in pair-pair pattern

    connected but can not receive msgs in pair-pair pattern

    we encountered a problem:

    client of c++ binds to server of scala using jzmq, and the client also binds to another server of c++.

    when the client is restarted, it connect to servers normally, but server of scala can not receive any msg, otherwise server of c++ is normal to receive msgs.

    codes of scala are as following

    val context = new ZContext
    
    val in: ZMQ.Socket = {
         val skt = context.createSocket(0) //pair
         skt.bind(inConf.getOrElse("ipc:///data/soft/ai-access/access-server"))
         skt 
    }
    threadPool.submit {
            new Runnable {
                override def run(): Unit = {
                    try {
                        while (!Thread.currentThread.isInterrupted) {
                            val reply = in.recv(0)
                            // ....
                        }
                    } catch {
                        case ex: Exception =>
                    }
                }
            }
        }
    
    opened by yangelaboy 0
  • why do you use ZeroMQ

    why do you use ZeroMQ

    hi, I am reading your project, why do you use ZeroMQ in your project instead of other message queues like Kafka, RabbitMQ... can you tell me about your purpose, the cons and pros of ZeroMQ, thank you so much

    opened by fizz12344321 1
  • Memory leak zmq msg_t initsize ?

    Memory leak zmq msg_t initsize ?

    We are using zmq inproc socket to transmit messages between threads. we have set Hwm accordingly and using multipart message, i.e send() method with the necessary flag. We are seeing this behavior of large memory consumption when large amount of messages are being transmitted using this socket, the usage is outsize heap. I looked into the page-fault graph and can see that most of the page-fault is created by java_org_zeromq_SocketSend , I tried to trace native allocation using jemalloc and the output obtained also suggest large allocation during SocketSend. From jemalloc output I can see that leak might be associated with zmq msg_t initsize() function. I have attached graph of what I have described above. I tried to use ZMsg.send() along with destroy flag set , but no change in the memory usage pattern. Can someone help me how to tackle the issue. Screen Shot 2022-06-29 at 12 00 20 Screen Shot 2022-06-21 at 19 34 57

    opened by constantmanish 0
  • test fails on apple m1 chip using openjdk8

    test fails on apple m1 chip using openjdk8


    T E S T S

    Running org.zeromq.ZConfigTest Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec - in org.zeromq.ZConfigTest Running org.zeromq.ZCertStoreTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.023 sec - in org.zeromq.ZCertStoreTest Running org.zeromq.ZMsgTest Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec - in org.zeromq.ZMsgTest Running org.zeromq.ZDispatcherTest performanceTest message sent:1,000,000 Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.836 sec <<< FAILURE! - in org.zeromq.ZDispatcherTest dispatcherPerformanceTest(org.zeromq.ZDispatcherTest) Time elapsed: 0.826 sec <<< ERROR! java.lang.ArithmeticException: / by zero at org.zeromq.ZDispatcherTest.dispatcherPerformanceTest(ZDispatcherTest.java:226)

    Running org.zeromq.ZContextTest Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in org.zeromq.ZContextTest Running org.zeromq.ZFrameTest Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.zeromq.ZFrameTest Running org.zeromq.ZAuthTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.424 sec - in org.zeromq.ZAuthTest Running org.zeromq.ZThreadTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in org.zeromq.ZThreadTest Running org.zeromq.ZLoopTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec - in org.zeromq.ZLoopTest

    Results :

    Tests in error: ZDispatcherTest.dispatcherPerformanceTest:226 Arithmetic / by zero

    Tests run: 38, Failures: 0, Errors: 1, Skipped: 0

    [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for jzmq-parent 3.1.1-SNAPSHOT: [INFO] [INFO] jzmq-parent ........................................ SUCCESS [ 0.136 s] [INFO] jzmq-jni ........................................... SUCCESS [ 10.970 s] [INFO] jzmq-core .......................................... FAILURE [ 7.094 s] [INFO] jzmq-devices ....................................... SKIPPED [INFO] jzmq ............................................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 18.262 s [INFO] Finished at: 2021-12-30T20:43:49+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test (default-test) on project jzmq-core: There are test failures. [ERROR] [ERROR] Please refer to /Users/yuzhao/jzmq/jzmq-core/target/surefire-reports for the individual test results. [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :jzmq-core

    $ java -version
    openjdk version "1.8.0_312" OpenJDK Runtime Environment (Zulu 8.58.0.13-CA-macos-aarch64) (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (Zulu 8.58.0.13-CA-macos-aarch64) (build 25.312-b07, mixed mode)

    $uname -a
    Darwin MyMacBook-Pro.local 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:01 PDT 2021; root:xnu-8019.41.5~1/RELEASE_ARM64_T6000 arm64

    opened by cmal 0
  • Android jzmq Support

    Android jzmq Support

    I am trying to build an Android application that uses jzmq to communicate using norm. Is there any support for Android? My initial solution was to build a .aar with all the compiled libraries, but I wanted to check with the devs for an approved method to build on Android. Would it be possible to have a install readme produced as well?

    opened by agrossmann09 0
  • GPL or LGPL Licensing?

    GPL or LGPL Licensing?

    Folks,

    Is the JZMQ licensed under GPL, as the view license link at the top-right of the top-level page shows, or LGPL as it describes in at the bottom of the page? The COPYING and COPYING.LESSER don't seem to clarify things.

    I'm hopeful that you'll respond LGPL, so that we can use JZMQ.

    Thanks, Sean

    opened by wylekyoti 1
Owner
The ZeroMQ project
The ZeroMQ project
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
Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

EventBus EventBus is a publish/subscribe event bus for Android and Java. EventBus... simplifies the communication between components decouples event s

Markus Junginger 24.2k Jan 3, 2023
RabbitMQ Java client

RabbitMQ Java Client This repository contains source code of the RabbitMQ Java client. The client is maintained by the RabbitMQ team at Pivotal. Depen

RabbitMQ 1.1k Jan 7, 2023
Java client for NATS

NATS - Java Client A Java client for the NATS messaging system. A Note on Versions This is version 2.x of the java-nats library. This version is a gro

NATS - The Cloud Native Messaging System 454 Jan 4, 2023
A mod for Fabric that ports Bedrock Edition mechanics to Java Edition. 1.16.x

bedrock-mechanics A mod for Fabric that ports Bedrock Edition mechanics to Java Edition. The controller support should be working on any controller by

Pedro Henrique 6 Oct 24, 2021
KC4Streams - a simple Java library that provides utility classes and standard implementations for most of the Kafka Streams pluggable interfaces

KC4Streams (which stands for Kafka Commons for Streams) is a simple Java library that provides utility classes and standard implementations for most of the Kafka Streams pluggable interfaces.

StreamThoughts 2 Mar 2, 2022
Kafka example - a simple producer and consumer for kafka using spring boot + java

Kafka example - a simple producer and consumer for kafka using spring boot + java

arturcampos 1 Feb 18, 2022
Pure Java ZeroMQ

JeroMQ Pure Java implementation of libzmq (http://zeromq.org). Features Based on libzmq 4.1.7. ZMTP/3.0 (http://rfc.zeromq.org/spec:23). tcp:// protoc

The ZeroMQ project 2.2k Jan 9, 2023
Java binding for etcd

jetcd: Java binding for etcd TravisCI: CircleCI: A simple Java client library for the awesome etcd Uses the Apache HttpAsyncClient to implement watche

Justin Santa Barbara 134 Jan 26, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
Java binding for Hoverfly

Hoverfly Java - Easy Creation of Stub Http Servers for Testing A Java native language binding for Hoverfly, a Go proxy which allows you to simulate ht

null 148 Nov 21, 2022
Generate Java types from JSON or JSON Schema and annotates those types for data-binding with Jackson, Gson, etc

jsonschema2pojo jsonschema2pojo generates Java types from JSON Schema (or example JSON) and can annotate those types for data-binding with Jackson 2.x

Joe Littlejohn 5.9k Jan 5, 2023
Java binding to Apache Arrow DataFusion

datafusion-java A Java binding to Apache Arrow DataFusion Status This project is still work in progress, and currently it works with Arrow 9.0 and Dat

null 35 Dec 9, 2022
Netflix, Inc. 809 Dec 28, 2022
Collection of Binding helpers for JavaFX(8)

Advanced-Bindings for JavaFX (8) advanced-bindings is a collection of useful helpers and custom binding implementations to simplify the development of

Manuel Mauky 63 Nov 19, 2022
Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13

JavaParser This project contains a set of libraries implementing a Java 1.0 - Java 14 Parser with advanced analysis functionalities. This includes pre

JavaParser 4.5k Jan 5, 2023
Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.

json-io Perfect Java serialization to and from JSON format (available on Maven Central). To include in your project: <dependency> <groupId>com.cedar

John DeRegnaucourt 303 Dec 30, 2022
Microserver is a Java 8 native, zero configuration, standards based, battle hardened library to run Java Rest Microservices via a standard Java main class. Supporting pure Microservice or Micro-monolith styles.

Microserver A convenient modular engine for Microservices. Microserver plugins offer seamless integration with Spring (core), Jersey, Guava, Tomcat, G

AOL 936 Dec 19, 2022
Java 1-15 Parser and Abstract Syntax Tree for Java, including preview features to Java 13

JavaParser This project contains a set of libraries implementing a Java 1.0 - Java 14 Parser with advanced analysis functionalities. This includes pre

JavaParser 4.5k Jan 9, 2023