You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alex-Vol-SV <gi...@git.apache.org> on 2018/07/03 00:57:00 UTC

[GitHub] qpid-jms pull request #20: Issue QPIDJMS-400: Add missing OSGI resolution:=o...

GitHub user Alex-Vol-SV opened a pull request:

    https://github.com/apache/qpid-jms/pull/20

    Issue QPIDJMS-400: Add missing OSGI resolution:=optional to native tr…

    …ansports
    
    The packages io.netty.channel.epoll and io.netty.channel.kqueue need
    to be marked as optional since only one of them can be activated at a
    time depending on the target platform of choice. The OSGI system fails
    to activate the bundle that does not match the platform where the
    client is deployed and fails the application activation that attempts
    to use it.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/simplivity/qpid-jms bugfix/QPIDJMS-400

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/qpid-jms/pull/20.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #20
    
----
commit ac80df9dc0175ab84ec396cef20d8c4faf436d44
Author: Alex Volanis <al...@...>
Date:   2018-07-03T00:53:16Z

    Issue QPIDJMS-400: Add missing OSGI resolution:=optional to native transports
    
    The packages io.netty.channel.epoll and io.netty.channel.kqueue need
    to be marked as optional since only one of them can be activated at a
    time depending on the target platform of choice. The OSGI system fails
    to activate the bundle that does not match the platform where the
    client is deployed and fails the application activation that attempts
    to use it.

----


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by Alex-Vol-SV <gi...@git.apache.org>.
Github user Alex-Vol-SV commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    We are using the qpid-jms client as the primary dependency in a Felix container. The change fixed the activation issue for what its worth. The "Optional" flag does not mean the activation does not happen, it means if is not required to happen if it cannot be activated. The error is actually very telling, it complains about the required bundle kqueue on the platform it cannot be activated.
    
    After the change the epoll bundle remains activated and the kqueue bundle is not activated which results in a running system.
    
    FYI, attempting to exclude the transitive dependency on the kqueue jar so only the epoll jar is available in the bundle does not fix the problem, the OSGI container again complains about the missing kqueue dependency because the OSGI manifest "requires" the bundle to be present.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by gemmellr <gi...@git.apache.org>.
Github user gemmellr commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    That wont actually work since the epoll bits are required by default, as the classes are used by default, in determining whether the functionality is currently available. 


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by gemmellr <gi...@git.apache.org>.
Github user gemmellr commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    > FYI, attempting to exclude the transitive dependency on the kqueue jar so only the epoll jar is available in the bundle does not fix the problem, the OSGI container again complains about the missing kqueue dependency because the OSGI manifest "requires" the bundle to be present.
    
    Which makes sense. Rather than exclude it entirely, did you try using the platform-neutral non-classified dependency instead?
    i.e try:
    http://repo2.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.25.Final/netty-transport-native-kqueue-4.1.25.Final.jar
    (rather than:
    http://repo2.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.25.Final/netty-transport-native-kqueue-4.1.25.Final-osx-x86_64.jar)


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by Alex-Vol-SV <gi...@git.apache.org>.
Github user Alex-Vol-SV commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    The failure in the Travis CI seems unrelated to my changes. I did not have a failure when building this on Ubuntu with Java 8. Should I try the same on MacOS? I have access to a Mac with XCode to run this on.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by Alex-Vol-SV <gi...@git.apache.org>.
Github user Alex-Vol-SV commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    I will try to manipulate the dependencies so that kqueue is the platform-neutral version. If that works I will close this pull request.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by gemmellr <gi...@git.apache.org>.
Github user gemmellr commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    I agree the Travis CI OSX failure is unrelated. There isn't a way to trigger a new build on the github mirror without updating the PR.
    
    I don't think this change is actually quite the way to go. The 'optional' flag was not missing for the epoll bits since the codebase actually needs the epoll classes by default, its used by default and the 'is epoll functionality available currently' checking exists in that code. The kqueue bits are not used by default and so perhaps that could be marked optional.
    
    Regardless, there are actually two variants of the jars published, a classified platform-specific one, and a non-classified neutral one that doesn't actually contain the native libs but still provides the Java code. Which were you trying to use?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[GitHub] qpid-jms issue #20: Issue QPIDJMS-400: Add missing OSGI resolution:=optional...

Posted by Alex-Vol-SV <gi...@git.apache.org>.
Github user Alex-Vol-SV commented on the issue:

    https://github.com/apache/qpid-jms/pull/20
  
    I will try that but IMHO using "optional" is the right approach. Lets the OSGI dependency system do the right thing automatically without forcing developers to play games with the dependency selections. I can create an OSGI bundle that works on either platform without having to change its contents. On the target host the OSGI container will select the appropriate native transport automatically based on its availability.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org