Markus Rathgeb created SSHD-717:
-----------------------------------

             Summary: wrong import-package directive
                 Key: SSHD-717
                 URL: https://issues.apache.org/jira/browse/SSHD-717
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 1.4.0
            Reporter: Markus Rathgeb


I have build a 1.4.0-SNAPSHOT using the Git sources myself.

The import package section of the manifest looks like this one (output taken 
from Karaf bundle:headers command because its well formatted).

{noformat}
Import-Package = 
        javax.crypto,
        javax.crypto.interfaces,
        javax.crypto.spec,
        javax.management,
        javax.security.auth,
        javax.security.auth.callback,
        javax.security.auth.login,
        net.i2p.crypto.eddsa;resolution:=optional;version="[0.1,1)",
        net.i2p.crypto.eddsa.math;resolution:=optional,
        net.i2p.crypto.eddsa.spec;resolution:=optional;version="[0.1,1)",
        org.apache.mina.core.buffer;resolution:=optional;version="[2.0,3)",
        org.apache.mina.core.future;resolution:=optional;version="[2.0,3)",
        org.apache.mina.core.service;resolution:=optional;version="[2.0,3)",
        org.apache.mina.core.session;resolution:=optional;version="[2.0,3)",
        org.apache.mina.transport.socket;resolution:=optional;version="[2.0,3)",
        
org.apache.mina.transport.socket.nio;resolution:=optional;version="[2.0,3)",
        org.apache.sshd.agent,
        org.apache.sshd.agent.common,
        org.apache.sshd.agent.local,
        org.apache.sshd.agent.unix,
        org.apache.sshd.client,
        org.apache.sshd.client.auth,
        org.apache.sshd.client.auth.hostbased,
        org.apache.sshd.client.auth.keyboard,
        org.apache.sshd.client.auth.password,
        org.apache.sshd.client.auth.pubkey,
        org.apache.sshd.client.channel,
        org.apache.sshd.client.channel.exit,
        org.apache.sshd.client.config.hosts,
        org.apache.sshd.client.config.keys,
        org.apache.sshd.client.future,
        org.apache.sshd.client.global,
        org.apache.sshd.client.kex,
        org.apache.sshd.client.keyverifier,
        org.apache.sshd.client.scp,
        org.apache.sshd.client.session,
        org.apache.sshd.client.session.forward,
        org.apache.sshd.client.simple,
        org.apache.sshd.client.subsystem,
        org.apache.sshd.client.subsystem.sftp,
        org.apache.sshd.client.subsystem.sftp.extensions,
        org.apache.sshd.client.subsystem.sftp.extensions.helpers,
        org.apache.sshd.client.subsystem.sftp.extensions.openssh,
        org.apache.sshd.client.subsystem.sftp.extensions.openssh.helpers,
        org.apache.sshd.common,
        org.apache.sshd.common.auth,
        org.apache.sshd.common.channel,
        org.apache.sshd.common.cipher,
        org.apache.sshd.common.compression,
        org.apache.sshd.common.config,
        org.apache.sshd.common.config.keys.loader,
        org.apache.sshd.common.digest,
        org.apache.sshd.common.file,
        org.apache.sshd.common.file.nativefs,
        org.apache.sshd.common.file.root,
        org.apache.sshd.common.file.util,
        org.apache.sshd.common.forward,
        org.apache.sshd.common.future,
        org.apache.sshd.common.global,
        org.apache.sshd.common.helpers,
        org.apache.sshd.common.io,
        org.apache.sshd.common.io.mina,
        org.apache.sshd.common.io.nio2,
        org.apache.sshd.common.kex.dh,
        org.apache.sshd.common.keyprovider,
        org.apache.sshd.common.mac,
        org.apache.sshd.common.random,
        org.apache.sshd.common.scp,
        org.apache.sshd.common.scp.helpers,
        org.apache.sshd.common.session,
        org.apache.sshd.common.session.helpers,
        org.apache.sshd.common.signature,
        org.apache.sshd.common.subsystem.sftp,
        org.apache.sshd.common.subsystem.sftp.extensions,
        org.apache.sshd.common.subsystem.sftp.extensions.openssh,
        org.apache.sshd.common.util,
        org.apache.sshd.common.util.closeable,
        org.apache.sshd.common.util.io,
        org.apache.sshd.common.util.logging,
        org.apache.sshd.common.util.net,
        org.apache.sshd.common.util.security,
        org.apache.sshd.common.util.security.bouncycastle,
        org.apache.sshd.common.util.threads,
        org.apache.sshd.server,
        org.apache.sshd.server.auth,
        org.apache.sshd.server.auth.gss,
        org.apache.sshd.server.auth.hostbased,
        org.apache.sshd.server.auth.keyboard,
        org.apache.sshd.server.auth.password,
        org.apache.sshd.server.auth.pubkey,
        org.apache.sshd.server.channel,
        org.apache.sshd.server.config.keys,
        org.apache.sshd.server.forward,
        org.apache.sshd.server.global,
        org.apache.sshd.server.kex,
        org.apache.sshd.server.keyprovider,
        org.apache.sshd.server.scp,
        org.apache.sshd.server.session,
        org.apache.sshd.server.shell,
        org.apache.sshd.server.subsystem,
        org.apache.sshd.server.subsystem.sftp,
        org.apache.sshd.server.x11,
        org.apache.tomcat.jni;resolution:=optional,
        org.bouncycastle.crypto.prng;resolution:=optional;version="[1.55,2)",
        org.bouncycastle.jce.provider;resolution:=optional;version="[1.55,2)",
        org.bouncycastle.openssl;resolution:=optional;version="[1.55,2)",
        org.bouncycastle.openssl.jcajce;resolution:=optional;version="[1.55,2)",
        org.ietf.jgss,
        org.slf4j;version="[1.7,2)"
{noformat}

Caused by the import of the packages it exports itself with missing version 
constraints, the bundle could import this packages from another package that 
exports that one with an incomplete version.

In my environment there are now two sshd bundles installed:
{noformat}
  1 | Active   |  20 | 0.14.0                | 
mvn:org.apache.sshd/sshd-core/0.14.0
128 | Active   |  80 | 1.4.0.SNAPSHOT        | 
mvn:org.apache.sshd/sshd-core/1.4.0-SNAPSHOT
{noformat}

As you can see the bundle 128 is using a package that is exported by 1, instead 
of using it from itself:
{noformat}
> requirements 128
org.apache.sshd.core [128] requires:
------------------------------------
...
osgi.wiring.package; (osgi.wiring.package=org.apache.sshd.common.future) 
resolved by:
   osgi.wiring.package; org.apache.sshd.common.future 0.14.0 from 
org.apache.sshd.core [1]
...
{noformat}

This leads to e.g. this exception:
{noformat}
java.lang.NoClassDefFoundError: org/apache/sshd/common/future/VerifiableFuture
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to