Git Product home page Git Product logo

zenoh-java's People

Contributors

dariusimp avatar eclipse-zenoh-bot avatar fuzzypixelz avatar gabrik avatar jenoch avatar joespeed avatar kydos avatar mallets avatar olivierhecart avatar oteffahi avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zenoh-java's Issues

Examples parameters

Describe the feature

Allow users to specify command line arguments for the examples.

Pull subscriber implementation

Describe the feature

So far the experimental versions of the Kotlin/Java bindings have missed the pull subscriber feature. For the sake of API alignment, the pull subscriber for these bindings need to be implemented.

Build targeting various platforms (Linux x86/arm 32/64, MacOS 64)

zenoh-java uses zenoh-c as a native library, which now supports various platforms thanks to eclipse-zenoh/zenohc#3.

zenoh-java must benefit this and embed in its jars the zenoh-c native libraries for those platforms:

  • Linux x86-32 (using zenoh-c manylinux2010-x86 build)
  • Linux x86-64 (using zenoh-c manylinux2010-x64 build)
  • Linux arm-32 (using zenoh-c linux-armv6 build)
  • Linux arm-64 (using zenoh-c linux-arm64 build)
  • MacOS 64 (using zenoh-c osx-64 build)

A Github workflow should be added for automated build and packaging of the jars.

Jenkins build publishing to Maven Central

We need a build on https://ci.eclipse.org/zenoh/ for zenoh-java releases that will publish artifacts to Maven Central.

Considering the discussion in https://bugs.eclipse.org/bugs/show_bug.cgi?id=562623, the building of the signed jars and their publications to OSSRH must be made on one of the Eclipse JIPP host.
However, those hosts are not able to run the Docker images that are required to cross-build the native zenoh-c libraries. Only our dedicated Jenkins host can do this.

Therefore, the only solution for this Jenkins build is to:

  • cross-build the zenoh-c native libraries on our dedicated host
  • import them on a JIPP host
  • build/sign/publish the zenoh-java jars from here

Add support for natively dealing with int and float types

For convenience the put operation should allow use directly some python primitive types commonly used, such as string, int, float and bytes and automatically create the right Value type.

This would allow for a put operation to look like:

     w.put('/sensor/temp', 25.3)

As opposed to having to do:

     w.put('/some/path', Value("my value", Encoding.STRING));
      ...

Automated snapshot packages publication

Describe the release item

Context

Changes done on the codebase for both Kotlin and Java bindings are not published until the next release is performed. This causes that fixes or new features that are already in the codebase and ready to be used are not available for users, unless they install the repository and do the whole setup consisting on publishing locally the library.

Solution

Modifying the github workflows to automatically publish snapshot packages from the main branch, providing the users packages with the last version changes on the codebase.
Github packages provides support for such kind of packages, overriding old snapshot versions.

Update README.md wrt. recent changes

The README.md needs to be updated for:

  • instructions for installation via Maven (when zenoh-java will be available on Maven Central...)
  • instructions for build (via top-level Makefile)
  • instructions for testing against the Docker image

building zenoh-java using mvn

I been trying to build

make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-pc-mingw32

mvn -h
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: C:\Users\RinelBhownath\apache-maven-3.8.7\apache-maven-3.8.7-bin\apache-maven-3.8.7
Java version: 17.0.7, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17
Default locale: en_ZA, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

D:\work\zenoh\java\zenoh\zenoh-java>mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Zenoh parent-pom                                                   [pom]
[INFO] Zenoh                                                              [jar]
[INFO] Zenoh examples                                                     [jar]
[INFO] Zenoh-net examples                                                 [jar]
[INFO] Zenoh main pom                                                     [pom]
[INFO] Zenoh examples pom                                                 [pom]
[INFO]
[INFO] --------------------< org.eclipse.zenoh:parent-pom >--------------------
[INFO] Building Zenoh parent-pom 0.4.2-M1                                 [1/6]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ parent-pom ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ parent-pom ---
[INFO] Installing D:\work\zenoh\java\zenoh\zenoh-java\parent-pom\pom.xml to C:\Users\RinelBhownath\.m2\repository\org\eclipse\zenoh\parent-pom\0.4.2-M1\parent-pom-0.4.2-M1.pom
[INFO]
[INFO] ----------------------< org.eclipse.zenoh:zenoh >-----------------------
[INFO] Building Zenoh 0.4.2-M1                                            [2/6]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ zenoh ---
[INFO]
[INFO] --- exec-maven-plugin:1.6.0:exec (make-natives) @ zenoh ---
process_begin: CreateProcess(NULL, uname -s, ...) failed.
process_begin: CreateProcess(NULL, uname -m, ...) failed.
process_begin: CreateProcess(NULL, rm -fr target/zenoh-c, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [target/zenoh-c/Makefile] Error 2
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 2 (Exit value: 2)
    at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751)
    at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Zenoh main pom 0.4.2-M1:
[INFO]
[INFO] Zenoh parent-pom ................................... SUCCESS [  0.207 s]
[INFO] Zenoh .............................................. FAILURE [  0.539 s]
[INFO] Zenoh examples ..................................... SKIPPED
[INFO] Zenoh-net examples ................................. SKIPPED
[INFO] Zenoh main pom ..................................... SKIPPED
[INFO] Zenoh examples pom ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.858 s
[INFO] Finished at: 2023-10-10T10:21:58+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (make-natives) on project zenoh: Command execution failed.: Process exited with an error: 2 (Exit value: 2) -> [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/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :zenoh
D:\work\zenoh\java\zenoh\zenoh-java>mvn -Prelease clean install
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.zenoh:zenoh:jar:0.4.2-M1
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ line 205, column 19
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO] Inspecting build with total of 6 modules...
[INFO] Installing Nexus Staging features:
[INFO]   ... total of 4 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Zenoh parent-pom                                                   [pom]
[INFO] Zenoh                                                              [jar]
[INFO] Zenoh examples                                                     [jar]
[INFO] Zenoh-net examples                                                 [jar]
[INFO] Zenoh main pom                                                     [pom]
[INFO] Zenoh examples pom                                                 [pom]
[INFO]
[INFO] --------------------< org.eclipse.zenoh:parent-pom >--------------------
[INFO] Building Zenoh parent-pom 0.4.2-M1                                 [1/6]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ parent-pom ---
[INFO]
[INFO] --- maven-gpg-plugin:1.6:sign (sign-artifacts) @ parent-pom ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Zenoh main pom 0.4.2-M1:
[INFO]
[INFO] Zenoh parent-pom ................................... FAILURE [  0.180 s]
[INFO] Zenoh .............................................. SKIPPED
[INFO] Zenoh examples ..................................... SKIPPED
[INFO] Zenoh-net examples ................................. SKIPPED
[INFO] Zenoh main pom ..................................... SKIPPED
[INFO] Zenoh examples pom ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.849 s
[INFO] Finished at: 2023-10-10T14:38:41+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts) on project parent-pom: Unable to execute gpg command: Error while executing process. Cannot run program "gpg.exe": CreateProcess error=2, The system cannot find the file specified -> [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/MojoExecutionException

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.