You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by Nhut Thai Le <nt...@benchmarkconsulting.com> on 2018/08/02 16:50:03 UTC

Felix takes forever to resolve dependencies

 Hello,

We are trying to integrate Keycloak admin-client and zk into our web app
running on felix 5.6.10 using bndtool.

If we use our web app with Keycloak admin-client alone, it's fine.

If we use our web app with zk alone, it's also fine.

When adding both Keycloak admin-client and zk, we are not able to start the
container from bndrun. Looks like the framework resolver get stuck in
resolving dependencies. Here is the stack of the main thread:
Thread [main] (Suspended)
waiting for: AtomicInteger  (id=29)
Object.wait(long) line: not available [native method]
AtomicInteger(Object).wait() line: 502
ResolverImpl$EnhancedExecutor.await() line: 2523
ResolverImpl.calculatePackageSpaces(ResolveSession, Candidates,
Collection<Resource>) line: 1217
ResolverImpl.checkConsistency(ResolveSession, Candidates,
Map<Resource,ResolutionError>) line: 572
ResolverImpl.findValidCandidates(ResolveSession,
Map<Resource,ResolutionError>) line: 532
ResolverImpl.doResolve(ResolveSession) line: 395
ResolverImpl.resolve(ResolveContext, Executor) line: 377
ResolverImpl.resolve(ResolveContext) line: 331
StatefulResolver.resolve(Set<BundleRevision>, Set<BundleRevision>) line: 478
Felix.resolveBundles(Collection<Bundle>) line: 4108
FrameworkWiringImpl.resolveBundles(Collection<Bundle>) line: 133
PackageAdminImpl.resolveBundles(Bundle[]) line: 267
Launcher.startBundles(List<Bundle>) line: 489
Launcher.activate() line: 423
Launcher.run(String[]) line: 301
Launcher.main(String[]) line: 147

A small note here is that Keycloak admin-client uses resteasy which is not
an osgi bundle so I wrap both admin-client, resteasy and its dependencies
in an osgi bundle and enabling service loader mediator header so that the
service files provided in the resteasy dependencies can be loaded.

For debugging I downloaded the source of org.apache.felix.framework but it
has no resolver/RersolverImpl class

I'm not sure what to do to debug this.

Thai

Re: Felix takes forever to resolve dependencies

Posted by Karl Pauls <ka...@gmail.com>.
Well, at least it doesn’t run into an endless resolve.

This more looks like one of your bundles has a missing dependency...

regards,

Karl

On Thursday, August 2, 2018, Nhut Thai Le <nt...@castortech.com> wrote:

> Hi Karl,
>
> Thank you for suggestion, I just upgrade and got a different behavior:
>
> With both zk and keycloak admin-client dependencies in the bndrun, when I
> start bndrun, i see the bundle that wraps Keycloak admin-client and
> resteasy failed to laod due to dependency missing:
> ! could not resolve the bundles:
> [com.castortech.iris.ba.keycloak.provider-1.0.0
> org.osgi.framework.BundleException: Unable to resolve
> com.castortech.iris.ba.keycloak.provider [24](R 24.0): missing requirement
> [com.castortech.iris.ba.keycloak.provider [24](R 24.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.jboss.resteasy.plugins.
> providers.jackson)(version>=3.6.0)(!(version>=4.0.0)))
> [caused by: Unable to resolve com.castortech.iris.osgi.keycloak [26](R
> 26.0): missing requirement [com.castortech.iris.osgi.keycloak [26](R
> 26.0)]
> osgi.wiring.package;
> (osgi.wiring.package=org.apache.http.nio.client.methods) [caused by:
> Unable
> to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
> requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!
> (version>=4.5.0)))]]
> Unresolved requirements: [[com.castortech.iris.ba.keycloak.provider [24](R
> 24.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.jboss.resteasy.plugins.
> providers.jackson)(version>=3.6.0)(!(version>=4.0.0)))]
> , com.castortech.iris.ba.webapp-1.0.0 org.osgi.framework.BundleException:
> Unable to resolve com.castortech.iris.ba.webapp [25](R 25.0): missing
> requirement [com.castortech.iris.ba.webapp [25](R 25.0)]
> osgi.wiring.bundle; (osgi.wiring.bundle=com.castortech.iris.osgi.keycloak)
> [caused by: Unable to resolve com.castortech.iris.osgi.keycloak [26](R
> 26.0): missing requirement [com.castortech.iris.osgi.keycloak [26](R
> 26.0)]
> osgi.wiring.package;
> (osgi.wiring.package=org.apache.http.nio.client.methods) [caused by:
> Unable
> to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
> requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!
> (version>=4.5.0)))]]
> Unresolved requirements: [[com.castortech.iris.ba.webapp [25](R 25.0)]
> osgi.wiring.bundle; (osgi.wiring.bundle=com.castortech.iris.osgi.keycloak)
> ]
> , com.castortech.iris.osgi.keycloak-1.0.0
> org.osgi.framework.BundleException: Unable to resolve
> com.castortech.iris.osgi.keycloak [26](R 26.0): missing requirement
> [com.castortech.iris.osgi.keycloak [26](R 26.0)] osgi.wiring.package;
> (osgi.wiring.package=org.apache.http.nio.client.methods) [caused by:
> Unable
> to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
> requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!
> (version>=4.5.0)))]
> Unresolved requirements: [[com.castortech.iris.osgi.keycloak [26](R 26.0)]
> osgi.wiring.package;
> (osgi.wiring.package=org.apache.http.nio.client.methods)]
> , org.apache.httpcomponents.httpasyncclient-4.1.3
> org.osgi.framework.BundleException: Unable to resolve
> org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
> requirement
> [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!
> (version>=4.5.0)))
> Unresolved requirements: [[org.apache.httpcomponents.httpasyncclient
> [53](R
> 53.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!
> (version>=4.5.0)))]
> ]
>
> Here is my bndrun file that cause the error above:
> -runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
> -runee: JavaSE-1.8
> -runsystemcapabilities: ${native_capability}
>
> -resolve.effective: active;skip:="osgi.service"
>
> -runbundles: \
> org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
> org.apache.felix.gogo.runtime;version='[1.0.10,1.0.11)',\
> org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\
> ch.qos.logback.core;version='[1.2.0,1.2.1)',\
> org.apache.aries.spifly.dynamic.bundle;version='[1.0.12,1.0.13)',\
> org.apache.aries.util;version='[1.0.0,1.0.1)',\
> org.apache.felix.configadmin;version='[1.8.16,1.8.17)',\
> org.apache.felix.log;version='[1.0.1,1.0.2)',\
> org.apache.felix.scr;version='[2.0.14,2.0.15)',\
> org.apache.felix.webconsole;version='[4.3.4,4.3.5)',\
> org.apache.felix.webconsole.plugins.ds;version='[2.0.8,2.0.9)',\
> org.apache.xbean.bundleutils;version='[4.8.0,4.8.1)',\
> org.apache.xbean.finder;version='[4.8.0,4.8.1)',\
> org.objectweb.asm;version='[6.2.0,6.2.1)',\
> org.objectweb.asm.commons;version='[6.2.0,6.2.1)',\
> org.objectweb.asm.tree;version='[6.2.0,6.2.1)',\
> org.ops4j.pax.web.pax-web-api;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-descriptor;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-extender-war;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-extender-whiteboard;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-jetty-bundle;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-spi;version='[7.2.0,7.2.1)',\
> slf4j.api;version='[1.7.25,1.7.26)',\
> com.castortech.iris.ba.keycloak.provider;version=snapshot,\
> com.castortech.iris.ba.webapp;version=snapshot,\
> com.castortech.iris.osgi.keycloak;version=snapshot,\
> com.castortech.iris.security;version=snapshot,\
> com.castortech.util;version=snapshot,\
> com.fasterxml.jackson.core.jackson-annotations;version='[2.9.0,2.9.1)',\
> com.fasterxml.jackson.core.jackson-core;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.core.jackson-databind;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.jaxrs.jackson-jaxrs-base;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider;
> version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.module.jackson-module-jaxb-
> annotations;version='[2.9.6,2.9.7)',\
> com.github.fge.btf;version='[1.2.0,1.2.1)',\
> com.github.fge.msg-simple;version='[1.1.0,1.1.1)',\
> com.github.java-json-tools.jackson-coreutils;version='[1.9.0,1.9.1)',\
> com.github.java-json-tools.json-patch;version='[1.10.0,1.10.1)',\
> com.google.guava;version='[16.0.1,16.0.2)',\
> com.google.guava;version='[25.1.0,25.1.1)',\
> com.sun.xml.bind.jaxb-impl;version='[2.3.0,2.3.1)',\
> javax.annotation-api;version='[1.2.0,1.2.1)',\
> javax.json-api;version='[1.1.2,1.1.3)',\
> javax.json.bind-api;version='[1.0.0,1.0.1)',\
> javax.mail.glassfish;version='[1.4.1,1.4.2)',\
> javax.validation.api;version='[2.0.1,2.0.2)',\
> javax.ws.rs-api;version='[2.1.0,2.1.1)',\
> log4j;version='[1.2.17,1.2.18)',\
> org.apache.commons.codec;version='[1.9.0,1.9.1)',\
> org.apache.commons.lang;version='[2.6.0,2.6.1)',\
> org.apache.commons.lang3;version='[3.3.2,3.3.3)',\
> org.apache.commons.logging;version='[1.1.3,1.1.4)',\
> org.apache.httpcomponents.httpasyncclient;version='[4.1.3,4.1.4)',\
> org.apache.httpcomponents.httpcore;version='[4.4.10,4.4.11)',\
> org.apache.james.apache-mime4j;version='[0.6.1,0.6.2)',\
> org.eclipse.emf.common;version='[2.12.0,2.12.1)',\
> org.eclipse.equinox.common;version='[3.10.0,3.10.1)',\
> org.eclipse.equinox.supplement;version='[1.8.0,1.8.1)',\
> org.jboss.logging.jboss-logging;version='[3.3.1,3.3.2)',\
> org.keycloak.keycloak-adapter-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-adapter-spi;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-authz-client;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-common;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty-adapter-spi;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty94-adapter;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-osgi-adapter;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-osgi-thirdparty;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-pax-web-jetty94;version='[4.0.0,4.0.1)',\
> org.ops4j.pax.web.pax-web-jetty;version='[7.2.0,7.2.1)',\
> org.reactivestreams.reactive-streams;version='[1.0.2,1.0.3)',\
> slf4j.jcl;version='[1.7.7,1.7.8)',\
> com.google.gson;version='[2.8.5,2.8.6)',\
> org.apache.commons.logging;version='[1.2.0,1.2.1)',\
> org.osgi.service.log;version='[1.4.0,1.4.1)',\
> org.osgi.util.function;version='[1.1.0,1.1.1)',\
> org.osgi.util.promise;version='[1.1.0,1.1.1)',\
> org.osgi.util.pushstream;version='[1.0.0,1.0.1)',\
> org.zkoss.zuss;version=snapshot,\
> zcommon;version='[8.5.1,8.5.2)',\
> zel;version='[8.5.1,8.5.2)',\
> zhtml;version='[8.5.1,8.5.2)',\
> zjavassist;version='[8.5.1,8.5.2)',\
> zk;version='[8.5.1,8.5.2)',\
> zkbind;version='[8.5.1,8.5.2)',\
> zkex;version='[8.5.1,8.5.2)',\
> zkmax;version='[8.5.1,8.5.2)',\
> zkplus;version='[8.5.1,8.5.2)',\
> zml;version='[8.5.1,8.5.2)',\
> zul;version='[8.5.1,8.5.2)',\
> zuti;version='[8.5.1,8.5.2)',\
> zweb;version='[8.5.1,8.5.2)',\
> com.castortech.iris.jetty;version=snapshot,\
> com.castortech.iris.zk;version=snapshot,\
> com.castortech.iris.zk.components;version=snapshot,\
> com.castortech.iris.zk.components.test;version=snapshot,\
> com.castortech.util.color.api;version=snapshot,\
> org.eclipse.jface;version=snapshot,\
> org.eclipse.swt;version=snapshot
>
> -runrequires: \
> osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
> osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-jetty-bundle',\
> bnd.identity;id='org.apache.felix.configadmin',\
> bnd.identity;id='org.apache.felix.webconsole',\
> bnd.identity;id='org.apache.felix.webconsole.plugins.ds',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-extender-war',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-api',\
> bnd.identity;id='org.apache.aries.spifly.dynamic.bundle',\
> bnd.identity;id='org.apache.felix.log',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-extender-whiteboard',\
> bnd.identity;id='org.keycloak.keycloak-osgi-thirdparty',\
> bnd.identity;id='org.keycloak.keycloak-osgi-adapter',\
> bnd.identity;id='org.keycloak.keycloak-pax-web-jetty94',\
> bnd.identity;id='org.jboss.logging.jboss-logging',\
> bnd.identity;version='2.8.11';id='com.fasterxml.jackson.
> core.jackson-core',\
> bnd.identity;version='2.8.11';id='com.fasterxml.jackson.
> core.jackson-annotations',\
> bnd.identity;version='2.8.11.1';id='com.fasterxml.jackson.
> core.jackson-databind',\
> bnd.identity;version='latest';id='com.castortech.iris.ba.
> keycloak.provider',\
> bnd.identity;version='latest';id='com.castortech.iris.ba.webapp',\
> bnd.identity;id='zk',\
> bnd.identity;id='zweb',\
> bnd.identity;id='zcommon',\
> bnd.identity;id='zhtml',\
> bnd.identity;id='zkbind',\
> bnd.identity;id='zml',\
> bnd.identity;id='zuti',\
> bnd.identity;id='zel',\
> bnd.identity;id='zul',\
> bnd.identity;id='zjavassist',\
> bnd.identity;id='zkex',\
> bnd.identity;id='zkmax',\
> bnd.identity;id='zkplus',\
> bnd.identity;id='org.osgi.service.log',\
> bnd.identity;id='com.google.gson',\
> bnd.identity;version='latest';id='org.zkoss.zuss',\
> bnd.identity;version='latest';id='com.castortech.iris.zk.components.test'
>
> -resolve: auto
>
> However, if i remove the zk related packages from the bndrun, then i got no
> error. Here is the bndrun without zk (only the last 17 lines in the
> runrequire section of the previous bndrun removed):
>
> -runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
> -runee: JavaSE-1.8
> -runsystemcapabilities: ${native_capability}
>
> -resolve.effective: active;skip:="osgi.service"
>
> -runbundles: \
> org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
> org.apache.felix.gogo.runtime;version='[1.0.10,1.0.11)',\
> org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\
> ch.qos.logback.core;version='[1.2.0,1.2.1)',\
> com.castortech.iris.ba.keycloak.provider;version=snapshot,\
> com.castortech.iris.ba.webapp;version=snapshot,\
> com.castortech.iris.osgi.keycloak;version=snapshot,\
> com.castortech.iris.security;version=snapshot,\
> com.castortech.util;version=snapshot,\
> com.fasterxml.jackson.core.jackson-annotations;version='[2.9.0,2.9.1)',\
> com.fasterxml.jackson.core.jackson-core;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.core.jackson-databind;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.jaxrs.jackson-jaxrs-base;version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider;
> version='[2.9.6,2.9.7)',\
> com.fasterxml.jackson.module.jackson-module-jaxb-
> annotations;version='[2.9.6,2.9.7)',\
> com.github.fge.btf;version='[1.2.0,1.2.1)',\
> com.github.fge.msg-simple;version='[1.1.0,1.1.1)',\
> com.github.java-json-tools.jackson-coreutils;version='[1.9.0,1.9.1)',\
> com.github.java-json-tools.json-patch;version='[1.10.0,1.10.1)',\
> com.google.guava;version='[16.0.1,16.0.2)',\
> com.google.guava;version='[25.1.0,25.1.1)',\
> com.sun.xml.bind.jaxb-impl;version='[2.3.0,2.3.1)',\
> javax.annotation-api;version='[1.2.0,1.2.1)',\
> javax.json-api;version='[1.1.2,1.1.3)',\
> javax.json.bind-api;version='[1.0.0,1.0.1)',\
> javax.mail.glassfish;version='[1.4.1,1.4.2)',\
> javax.validation.api;version='[2.0.1,2.0.2)',\
> javax.ws.rs-api;version='[2.1.0,2.1.1)',\
> log4j;version='[1.2.17,1.2.18)',\
> org.apache.aries.spifly.dynamic.bundle;version='[1.0.12,1.0.13)',\
> org.apache.aries.util;version='[1.0.0,1.0.1)',\
> org.apache.commons.codec;version='[1.9.0,1.9.1)',\
> org.apache.commons.lang;version='[2.6.0,2.6.1)',\
> org.apache.commons.lang3;version='[3.3.2,3.3.3)',\
> org.apache.commons.logging;version='[1.1.3,1.1.4)',\
> org.apache.felix.configadmin;version='[1.8.16,1.8.17)',\
> org.apache.felix.log;version='[1.0.1,1.0.2)',\
> org.apache.felix.scr;version='[2.0.14,2.0.15)',\
> org.apache.felix.webconsole;version='[4.3.4,4.3.5)',\
> org.apache.felix.webconsole.plugins.ds;version='[2.0.8,2.0.9)',\
> org.apache.httpcomponents.httpasyncclient;version='[4.1.3,4.1.4)',\
> org.apache.httpcomponents.httpclient;version='[4.5.2,4.5.3)',\
> org.apache.httpcomponents.httpcore;version='[4.4.10,4.4.11)',\
> org.apache.james.apache-mime4j;version='[0.6.1,0.6.2)',\
> org.apache.xbean.bundleutils;version='[4.8.0,4.8.1)',\
> org.apache.xbean.finder;version='[4.8.0,4.8.1)',\
> org.eclipse.emf.common;version='[2.12.0,2.12.1)',\
> org.eclipse.equinox.common;version='[3.10.0,3.10.1)',\
> org.eclipse.equinox.supplement;version='[1.8.0,1.8.1)',\
> org.jboss.logging.jboss-logging;version='[3.3.1,3.3.2)',\
> org.keycloak.keycloak-adapter-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-adapter-spi;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-authz-client;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-common;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty-adapter-spi;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty-core;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-jetty94-adapter;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-osgi-adapter;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-osgi-thirdparty;version='[4.0.0,4.0.1)',\
> org.keycloak.keycloak-pax-web-jetty94;version='[4.0.0,4.0.1)',\
> org.objectweb.asm;version='[6.2.0,6.2.1)',\
> org.objectweb.asm.commons;version='[6.2.0,6.2.1)',\
> org.objectweb.asm.tree;version='[6.2.0,6.2.1)',\
> org.ops4j.pax.web.pax-web-api;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-descriptor;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-extender-war;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-extender-whiteboard;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-jetty;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-jetty-bundle;version='[7.2.0,7.2.1)',\
> org.ops4j.pax.web.pax-web-spi;version='[7.2.0,7.2.1)',\
> org.reactivestreams.reactive-streams;version='[1.0.2,1.0.3)',\
> slf4j.api;version='[1.7.25,1.7.26)',\
> slf4j.jcl;version='[1.7.7,1.7.8)'
>
> -runrequires: \
> osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
> osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-jetty-bundle',\
> bnd.identity;id='org.apache.felix.configadmin',\
> bnd.identity;id='org.apache.felix.webconsole',\
> bnd.identity;id='org.apache.felix.webconsole.plugins.ds',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-extender-war',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-api',\
> bnd.identity;id='org.apache.aries.spifly.dynamic.bundle',\
> bnd.identity;id='org.apache.felix.log',\
> bnd.identity;id='org.ops4j.pax.web.pax-web-extender-whiteboard',\
> bnd.identity;id='org.keycloak.keycloak-osgi-thirdparty',\
> bnd.identity;id='org.keycloak.keycloak-osgi-adapter',\
> bnd.identity;id='org.keycloak.keycloak-pax-web-jetty94',\
> bnd.identity;id='org.jboss.logging.jboss-logging',\
> bnd.identity;version='2.8.11';id='com.fasterxml.jackson.
> core.jackson-core',\
> bnd.identity;version='2.8.11';id='com.fasterxml.jackson.
> core.jackson-annotations',\
> bnd.identity;version='2.8.11.1';id='com.fasterxml.jackson.
> core.jackson-databind',\
> bnd.identity;version='latest';id='com.castortech.iris.ba.
> keycloak.provider',\
> bnd.identity;version='latest';id='com.castortech.iris.ba.webapp'
>
> -resolve: auto
>
> So the question is why the resolver at run time fail to resolve bundles
> that it was able to resolve earlier (before adding ZK)?
>
> Thai
>
> On Thu, Aug 2, 2018 at 2:12 PM, Karl Pauls <ka...@gmail.com> wrote:
>
> > can you try with felix 6.0.0?
> >
> > regards,
> >
> > Karl
> >
> > On Thursday, August 2, 2018, Nhut Thai Le <nt...@benchmarkconsulting.com>
> > wrote:
> >
> > >  Hello,
> > >
> > > We are trying to integrate Keycloak admin-client and zk into our web
> app
> > > running on felix 5.6.10 using bndtool.
> > >
> > > If we use our web app with Keycloak admin-client alone, it's fine.
> > >
> > > If we use our web app with zk alone, it's also fine.
> > >
> > > When adding both Keycloak admin-client and zk, we are not able to start
> > the
> > > container from bndrun. Looks like the framework resolver get stuck in
> > > resolving dependencies. Here is the stack of the main thread:
> > > Thread [main] (Suspended)
> > > waiting for: AtomicInteger  (id=29)
> > > Object.wait(long) line: not available [native method]
> > > AtomicInteger(Object).wait() line: 502
> > > ResolverImpl$EnhancedExecutor.await() line: 2523
> > > ResolverImpl.calculatePackageSpaces(ResolveSession, Candidates,
> > > Collection<Resource>) line: 1217
> > > ResolverImpl.checkConsistency(ResolveSession, Candidates,
> > > Map<Resource,ResolutionError>) line: 572
> > > ResolverImpl.findValidCandidates(ResolveSession,
> > > Map<Resource,ResolutionError>) line: 532
> > > ResolverImpl.doResolve(ResolveSession) line: 395
> > > ResolverImpl.resolve(ResolveContext, Executor) line: 377
> > > ResolverImpl.resolve(ResolveContext) line: 331
> > > StatefulResolver.resolve(Set<BundleRevision>, Set<BundleRevision>)
> line:
> > > 478
> > > Felix.resolveBundles(Collection<Bundle>) line: 4108
> > > FrameworkWiringImpl.resolveBundles(Collection<Bundle>) line: 133
> > > PackageAdminImpl.resolveBundles(Bundle[]) line: 267
> > > Launcher.startBundles(List<Bundle>) line: 489
> > > Launcher.activate() line: 423
> > > Launcher.run(String[]) line: 301
> > > Launcher.main(String[]) line: 147
> > >
> > > A small note here is that Keycloak admin-client uses resteasy which is
> > not
> > > an osgi bundle so I wrap both admin-client, resteasy and its
> dependencies
> > > in an osgi bundle and enabling service loader mediator header so that
> the
> > > service files provided in the resteasy dependencies can be loaded.
> > >
> > > For debugging I downloaded the source of org.apache.felix.framework but
> > it
> > > has no resolver/RersolverImpl class
> > >
> > > I'm not sure what to do to debug this.
> > >
> > > Thai
> > >
> >
> >
> > --
> > Karl Pauls
> > karlpauls@gmail.com
> >
>
>
>
> --
> Castor Technologies Inc
> 460 rue St-Catherine St Ouest, Suite 613
> Montréal, Québec H3B-1A7
> (514) 360-7208 o
> (514) 798-2044 f
> ntle@castortech.com
> www.castortech.com
>
> CONFIDENTIALITY NOTICE: The information contained in this e-mail is
> confidential and may be proprietary information intended only for the use
> of the individual or entity to whom it is addressed. If the reader of this
> message is not the intended recipient, you are hereby notified that any
> viewing, dissemination, distribution, disclosure, copy or use of the
> information contained in this e-mail message is strictly prohibited. If you
> have received and/or are viewing this e-mail in error, please immediately
> notify the sender by reply e-mail, and delete it from your system without
> reading, forwarding, copying or saving in any manner. Thank you.
> AVIS DE CONFIDENTIALITE: L’information contenue dans ce message est
> confidentiel, peut être protégé par le secret professionnel et est réservé
> à l'usage exclusif du destinataire. Toute autre personne est par les
> présentes avisée qu'il lui est strictement interdit de diffuser, distribuer
> ou reproduire ce message. Si vous avez reçu cette communication par erreur,
> veuillez la détruire immédiatement et en aviser l'expéditeur. Merci.
>


-- 
Karl Pauls
karlpauls@gmail.com

Re: Felix takes forever to resolve dependencies

Posted by Nhut Thai Le <nt...@castortech.com>.
Hi Karl,

Thank you for suggestion, I just upgrade and got a different behavior:

With both zk and keycloak admin-client dependencies in the bndrun, when I
start bndrun, i see the bundle that wraps Keycloak admin-client and
resteasy failed to laod due to dependency missing:
! could not resolve the bundles:
[com.castortech.iris.ba.keycloak.provider-1.0.0
org.osgi.framework.BundleException: Unable to resolve
com.castortech.iris.ba.keycloak.provider [24](R 24.0): missing requirement
[com.castortech.iris.ba.keycloak.provider [24](R 24.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.jboss.resteasy.plugins.providers.jackson)(version>=3.6.0)(!(version>=4.0.0)))
[caused by: Unable to resolve com.castortech.iris.osgi.keycloak [26](R
26.0): missing requirement [com.castortech.iris.osgi.keycloak [26](R 26.0)]
osgi.wiring.package;
(osgi.wiring.package=org.apache.http.nio.client.methods) [caused by: Unable
to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!(version>=4.5.0)))]]
Unresolved requirements: [[com.castortech.iris.ba.keycloak.provider [24](R
24.0)] osgi.wiring.package;
(&(osgi.wiring.package=org.jboss.resteasy.plugins.providers.jackson)(version>=3.6.0)(!(version>=4.0.0)))]
, com.castortech.iris.ba.webapp-1.0.0 org.osgi.framework.BundleException:
Unable to resolve com.castortech.iris.ba.webapp [25](R 25.0): missing
requirement [com.castortech.iris.ba.webapp [25](R 25.0)]
osgi.wiring.bundle; (osgi.wiring.bundle=com.castortech.iris.osgi.keycloak)
[caused by: Unable to resolve com.castortech.iris.osgi.keycloak [26](R
26.0): missing requirement [com.castortech.iris.osgi.keycloak [26](R 26.0)]
osgi.wiring.package;
(osgi.wiring.package=org.apache.http.nio.client.methods) [caused by: Unable
to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!(version>=4.5.0)))]]
Unresolved requirements: [[com.castortech.iris.ba.webapp [25](R 25.0)]
osgi.wiring.bundle; (osgi.wiring.bundle=com.castortech.iris.osgi.keycloak)]
, com.castortech.iris.osgi.keycloak-1.0.0
org.osgi.framework.BundleException: Unable to resolve
com.castortech.iris.osgi.keycloak [26](R 26.0): missing requirement
[com.castortech.iris.osgi.keycloak [26](R 26.0)] osgi.wiring.package;
(osgi.wiring.package=org.apache.http.nio.client.methods) [caused by: Unable
to resolve org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing
requirement [org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!(version>=4.5.0)))]
Unresolved requirements: [[com.castortech.iris.osgi.keycloak [26](R 26.0)]
osgi.wiring.package;
(osgi.wiring.package=org.apache.http.nio.client.methods)]
, org.apache.httpcomponents.httpasyncclient-4.1.3
org.osgi.framework.BundleException: Unable to resolve
org.apache.httpcomponents.httpasyncclient [53](R 53.0): missing requirement
[org.apache.httpcomponents.httpasyncclient [53](R 53.0)]
osgi.wiring.package;
(&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!(version>=4.5.0)))
Unresolved requirements: [[org.apache.httpcomponents.httpasyncclient [53](R
53.0)] osgi.wiring.package;
(&(osgi.wiring.package=org.apache.http)(version>=4.4.0)(!(version>=4.5.0)))]
]

Here is my bndrun file that cause the error above:
-runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}

-resolve.effective: active;skip:="osgi.service"

-runbundles: \
org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
org.apache.felix.gogo.runtime;version='[1.0.10,1.0.11)',\
org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\
ch.qos.logback.core;version='[1.2.0,1.2.1)',\
org.apache.aries.spifly.dynamic.bundle;version='[1.0.12,1.0.13)',\
org.apache.aries.util;version='[1.0.0,1.0.1)',\
org.apache.felix.configadmin;version='[1.8.16,1.8.17)',\
org.apache.felix.log;version='[1.0.1,1.0.2)',\
org.apache.felix.scr;version='[2.0.14,2.0.15)',\
org.apache.felix.webconsole;version='[4.3.4,4.3.5)',\
org.apache.felix.webconsole.plugins.ds;version='[2.0.8,2.0.9)',\
org.apache.xbean.bundleutils;version='[4.8.0,4.8.1)',\
org.apache.xbean.finder;version='[4.8.0,4.8.1)',\
org.objectweb.asm;version='[6.2.0,6.2.1)',\
org.objectweb.asm.commons;version='[6.2.0,6.2.1)',\
org.objectweb.asm.tree;version='[6.2.0,6.2.1)',\
org.ops4j.pax.web.pax-web-api;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-descriptor;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-extender-war;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-extender-whiteboard;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-jetty-bundle;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-spi;version='[7.2.0,7.2.1)',\
slf4j.api;version='[1.7.25,1.7.26)',\
com.castortech.iris.ba.keycloak.provider;version=snapshot,\
com.castortech.iris.ba.webapp;version=snapshot,\
com.castortech.iris.osgi.keycloak;version=snapshot,\
com.castortech.iris.security;version=snapshot,\
com.castortech.util;version=snapshot,\
com.fasterxml.jackson.core.jackson-annotations;version='[2.9.0,2.9.1)',\
com.fasterxml.jackson.core.jackson-core;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.core.jackson-databind;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.jaxrs.jackson-jaxrs-base;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.module.jackson-module-jaxb-annotations;version='[2.9.6,2.9.7)',\
com.github.fge.btf;version='[1.2.0,1.2.1)',\
com.github.fge.msg-simple;version='[1.1.0,1.1.1)',\
com.github.java-json-tools.jackson-coreutils;version='[1.9.0,1.9.1)',\
com.github.java-json-tools.json-patch;version='[1.10.0,1.10.1)',\
com.google.guava;version='[16.0.1,16.0.2)',\
com.google.guava;version='[25.1.0,25.1.1)',\
com.sun.xml.bind.jaxb-impl;version='[2.3.0,2.3.1)',\
javax.annotation-api;version='[1.2.0,1.2.1)',\
javax.json-api;version='[1.1.2,1.1.3)',\
javax.json.bind-api;version='[1.0.0,1.0.1)',\
javax.mail.glassfish;version='[1.4.1,1.4.2)',\
javax.validation.api;version='[2.0.1,2.0.2)',\
javax.ws.rs-api;version='[2.1.0,2.1.1)',\
log4j;version='[1.2.17,1.2.18)',\
org.apache.commons.codec;version='[1.9.0,1.9.1)',\
org.apache.commons.lang;version='[2.6.0,2.6.1)',\
org.apache.commons.lang3;version='[3.3.2,3.3.3)',\
org.apache.commons.logging;version='[1.1.3,1.1.4)',\
org.apache.httpcomponents.httpasyncclient;version='[4.1.3,4.1.4)',\
org.apache.httpcomponents.httpcore;version='[4.4.10,4.4.11)',\
org.apache.james.apache-mime4j;version='[0.6.1,0.6.2)',\
org.eclipse.emf.common;version='[2.12.0,2.12.1)',\
org.eclipse.equinox.common;version='[3.10.0,3.10.1)',\
org.eclipse.equinox.supplement;version='[1.8.0,1.8.1)',\
org.jboss.logging.jboss-logging;version='[3.3.1,3.3.2)',\
org.keycloak.keycloak-adapter-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-adapter-spi;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-authz-client;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-common;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty-adapter-spi;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty94-adapter;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-osgi-adapter;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-osgi-thirdparty;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-pax-web-jetty94;version='[4.0.0,4.0.1)',\
org.ops4j.pax.web.pax-web-jetty;version='[7.2.0,7.2.1)',\
org.reactivestreams.reactive-streams;version='[1.0.2,1.0.3)',\
slf4j.jcl;version='[1.7.7,1.7.8)',\
com.google.gson;version='[2.8.5,2.8.6)',\
org.apache.commons.logging;version='[1.2.0,1.2.1)',\
org.osgi.service.log;version='[1.4.0,1.4.1)',\
org.osgi.util.function;version='[1.1.0,1.1.1)',\
org.osgi.util.promise;version='[1.1.0,1.1.1)',\
org.osgi.util.pushstream;version='[1.0.0,1.0.1)',\
org.zkoss.zuss;version=snapshot,\
zcommon;version='[8.5.1,8.5.2)',\
zel;version='[8.5.1,8.5.2)',\
zhtml;version='[8.5.1,8.5.2)',\
zjavassist;version='[8.5.1,8.5.2)',\
zk;version='[8.5.1,8.5.2)',\
zkbind;version='[8.5.1,8.5.2)',\
zkex;version='[8.5.1,8.5.2)',\
zkmax;version='[8.5.1,8.5.2)',\
zkplus;version='[8.5.1,8.5.2)',\
zml;version='[8.5.1,8.5.2)',\
zul;version='[8.5.1,8.5.2)',\
zuti;version='[8.5.1,8.5.2)',\
zweb;version='[8.5.1,8.5.2)',\
com.castortech.iris.jetty;version=snapshot,\
com.castortech.iris.zk;version=snapshot,\
com.castortech.iris.zk.components;version=snapshot,\
com.castortech.iris.zk.components.test;version=snapshot,\
com.castortech.util.color.api;version=snapshot,\
org.eclipse.jface;version=snapshot,\
org.eclipse.swt;version=snapshot

-runrequires: \
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
bnd.identity;id='org.ops4j.pax.web.pax-web-jetty-bundle',\
bnd.identity;id='org.apache.felix.configadmin',\
bnd.identity;id='org.apache.felix.webconsole',\
bnd.identity;id='org.apache.felix.webconsole.plugins.ds',\
bnd.identity;id='org.ops4j.pax.web.pax-web-extender-war',\
bnd.identity;id='org.ops4j.pax.web.pax-web-api',\
bnd.identity;id='org.apache.aries.spifly.dynamic.bundle',\
bnd.identity;id='org.apache.felix.log',\
bnd.identity;id='org.ops4j.pax.web.pax-web-extender-whiteboard',\
bnd.identity;id='org.keycloak.keycloak-osgi-thirdparty',\
bnd.identity;id='org.keycloak.keycloak-osgi-adapter',\
bnd.identity;id='org.keycloak.keycloak-pax-web-jetty94',\
bnd.identity;id='org.jboss.logging.jboss-logging',\
bnd.identity;version='2.8.11';id='com.fasterxml.jackson.core.jackson-core',\
bnd.identity;version='2.8.11';id='com.fasterxml.jackson.core.jackson-annotations',\
bnd.identity;version='2.8.11.1';id='com.fasterxml.jackson.core.jackson-databind',\
bnd.identity;version='latest';id='com.castortech.iris.ba.keycloak.provider',\
bnd.identity;version='latest';id='com.castortech.iris.ba.webapp',\
bnd.identity;id='zk',\
bnd.identity;id='zweb',\
bnd.identity;id='zcommon',\
bnd.identity;id='zhtml',\
bnd.identity;id='zkbind',\
bnd.identity;id='zml',\
bnd.identity;id='zuti',\
bnd.identity;id='zel',\
bnd.identity;id='zul',\
bnd.identity;id='zjavassist',\
bnd.identity;id='zkex',\
bnd.identity;id='zkmax',\
bnd.identity;id='zkplus',\
bnd.identity;id='org.osgi.service.log',\
bnd.identity;id='com.google.gson',\
bnd.identity;version='latest';id='org.zkoss.zuss',\
bnd.identity;version='latest';id='com.castortech.iris.zk.components.test'

-resolve: auto

However, if i remove the zk related packages from the bndrun, then i got no
error. Here is the bndrun without zk (only the last 17 lines in the
runrequire section of the previous bndrun removed):

-runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}

-resolve.effective: active;skip:="osgi.service"

-runbundles: \
org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
org.apache.felix.gogo.runtime;version='[1.0.10,1.0.11)',\
org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\
ch.qos.logback.core;version='[1.2.0,1.2.1)',\
com.castortech.iris.ba.keycloak.provider;version=snapshot,\
com.castortech.iris.ba.webapp;version=snapshot,\
com.castortech.iris.osgi.keycloak;version=snapshot,\
com.castortech.iris.security;version=snapshot,\
com.castortech.util;version=snapshot,\
com.fasterxml.jackson.core.jackson-annotations;version='[2.9.0,2.9.1)',\
com.fasterxml.jackson.core.jackson-core;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.core.jackson-databind;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.jaxrs.jackson-jaxrs-base;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider;version='[2.9.6,2.9.7)',\
com.fasterxml.jackson.module.jackson-module-jaxb-annotations;version='[2.9.6,2.9.7)',\
com.github.fge.btf;version='[1.2.0,1.2.1)',\
com.github.fge.msg-simple;version='[1.1.0,1.1.1)',\
com.github.java-json-tools.jackson-coreutils;version='[1.9.0,1.9.1)',\
com.github.java-json-tools.json-patch;version='[1.10.0,1.10.1)',\
com.google.guava;version='[16.0.1,16.0.2)',\
com.google.guava;version='[25.1.0,25.1.1)',\
com.sun.xml.bind.jaxb-impl;version='[2.3.0,2.3.1)',\
javax.annotation-api;version='[1.2.0,1.2.1)',\
javax.json-api;version='[1.1.2,1.1.3)',\
javax.json.bind-api;version='[1.0.0,1.0.1)',\
javax.mail.glassfish;version='[1.4.1,1.4.2)',\
javax.validation.api;version='[2.0.1,2.0.2)',\
javax.ws.rs-api;version='[2.1.0,2.1.1)',\
log4j;version='[1.2.17,1.2.18)',\
org.apache.aries.spifly.dynamic.bundle;version='[1.0.12,1.0.13)',\
org.apache.aries.util;version='[1.0.0,1.0.1)',\
org.apache.commons.codec;version='[1.9.0,1.9.1)',\
org.apache.commons.lang;version='[2.6.0,2.6.1)',\
org.apache.commons.lang3;version='[3.3.2,3.3.3)',\
org.apache.commons.logging;version='[1.1.3,1.1.4)',\
org.apache.felix.configadmin;version='[1.8.16,1.8.17)',\
org.apache.felix.log;version='[1.0.1,1.0.2)',\
org.apache.felix.scr;version='[2.0.14,2.0.15)',\
org.apache.felix.webconsole;version='[4.3.4,4.3.5)',\
org.apache.felix.webconsole.plugins.ds;version='[2.0.8,2.0.9)',\
org.apache.httpcomponents.httpasyncclient;version='[4.1.3,4.1.4)',\
org.apache.httpcomponents.httpclient;version='[4.5.2,4.5.3)',\
org.apache.httpcomponents.httpcore;version='[4.4.10,4.4.11)',\
org.apache.james.apache-mime4j;version='[0.6.1,0.6.2)',\
org.apache.xbean.bundleutils;version='[4.8.0,4.8.1)',\
org.apache.xbean.finder;version='[4.8.0,4.8.1)',\
org.eclipse.emf.common;version='[2.12.0,2.12.1)',\
org.eclipse.equinox.common;version='[3.10.0,3.10.1)',\
org.eclipse.equinox.supplement;version='[1.8.0,1.8.1)',\
org.jboss.logging.jboss-logging;version='[3.3.1,3.3.2)',\
org.keycloak.keycloak-adapter-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-adapter-spi;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-authz-client;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-common;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty-adapter-spi;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty-core;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-jetty94-adapter;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-osgi-adapter;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-osgi-thirdparty;version='[4.0.0,4.0.1)',\
org.keycloak.keycloak-pax-web-jetty94;version='[4.0.0,4.0.1)',\
org.objectweb.asm;version='[6.2.0,6.2.1)',\
org.objectweb.asm.commons;version='[6.2.0,6.2.1)',\
org.objectweb.asm.tree;version='[6.2.0,6.2.1)',\
org.ops4j.pax.web.pax-web-api;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-descriptor;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-extender-war;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-extender-whiteboard;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-jetty;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-jetty-bundle;version='[7.2.0,7.2.1)',\
org.ops4j.pax.web.pax-web-spi;version='[7.2.0,7.2.1)',\
org.reactivestreams.reactive-streams;version='[1.0.2,1.0.3)',\
slf4j.api;version='[1.7.25,1.7.26)',\
slf4j.jcl;version='[1.7.7,1.7.8)'

-runrequires: \
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
bnd.identity;id='org.ops4j.pax.web.pax-web-jetty-bundle',\
bnd.identity;id='org.apache.felix.configadmin',\
bnd.identity;id='org.apache.felix.webconsole',\
bnd.identity;id='org.apache.felix.webconsole.plugins.ds',\
bnd.identity;id='org.ops4j.pax.web.pax-web-extender-war',\
bnd.identity;id='org.ops4j.pax.web.pax-web-api',\
bnd.identity;id='org.apache.aries.spifly.dynamic.bundle',\
bnd.identity;id='org.apache.felix.log',\
bnd.identity;id='org.ops4j.pax.web.pax-web-extender-whiteboard',\
bnd.identity;id='org.keycloak.keycloak-osgi-thirdparty',\
bnd.identity;id='org.keycloak.keycloak-osgi-adapter',\
bnd.identity;id='org.keycloak.keycloak-pax-web-jetty94',\
bnd.identity;id='org.jboss.logging.jboss-logging',\
bnd.identity;version='2.8.11';id='com.fasterxml.jackson.core.jackson-core',\
bnd.identity;version='2.8.11';id='com.fasterxml.jackson.core.jackson-annotations',\
bnd.identity;version='2.8.11.1';id='com.fasterxml.jackson.core.jackson-databind',\
bnd.identity;version='latest';id='com.castortech.iris.ba.keycloak.provider',\
bnd.identity;version='latest';id='com.castortech.iris.ba.webapp'

-resolve: auto

So the question is why the resolver at run time fail to resolve bundles
that it was able to resolve earlier (before adding ZK)?

Thai

On Thu, Aug 2, 2018 at 2:12 PM, Karl Pauls <ka...@gmail.com> wrote:

> can you try with felix 6.0.0?
>
> regards,
>
> Karl
>
> On Thursday, August 2, 2018, Nhut Thai Le <nt...@benchmarkconsulting.com>
> wrote:
>
> >  Hello,
> >
> > We are trying to integrate Keycloak admin-client and zk into our web app
> > running on felix 5.6.10 using bndtool.
> >
> > If we use our web app with Keycloak admin-client alone, it's fine.
> >
> > If we use our web app with zk alone, it's also fine.
> >
> > When adding both Keycloak admin-client and zk, we are not able to start
> the
> > container from bndrun. Looks like the framework resolver get stuck in
> > resolving dependencies. Here is the stack of the main thread:
> > Thread [main] (Suspended)
> > waiting for: AtomicInteger  (id=29)
> > Object.wait(long) line: not available [native method]
> > AtomicInteger(Object).wait() line: 502
> > ResolverImpl$EnhancedExecutor.await() line: 2523
> > ResolverImpl.calculatePackageSpaces(ResolveSession, Candidates,
> > Collection<Resource>) line: 1217
> > ResolverImpl.checkConsistency(ResolveSession, Candidates,
> > Map<Resource,ResolutionError>) line: 572
> > ResolverImpl.findValidCandidates(ResolveSession,
> > Map<Resource,ResolutionError>) line: 532
> > ResolverImpl.doResolve(ResolveSession) line: 395
> > ResolverImpl.resolve(ResolveContext, Executor) line: 377
> > ResolverImpl.resolve(ResolveContext) line: 331
> > StatefulResolver.resolve(Set<BundleRevision>, Set<BundleRevision>) line:
> > 478
> > Felix.resolveBundles(Collection<Bundle>) line: 4108
> > FrameworkWiringImpl.resolveBundles(Collection<Bundle>) line: 133
> > PackageAdminImpl.resolveBundles(Bundle[]) line: 267
> > Launcher.startBundles(List<Bundle>) line: 489
> > Launcher.activate() line: 423
> > Launcher.run(String[]) line: 301
> > Launcher.main(String[]) line: 147
> >
> > A small note here is that Keycloak admin-client uses resteasy which is
> not
> > an osgi bundle so I wrap both admin-client, resteasy and its dependencies
> > in an osgi bundle and enabling service loader mediator header so that the
> > service files provided in the resteasy dependencies can be loaded.
> >
> > For debugging I downloaded the source of org.apache.felix.framework but
> it
> > has no resolver/RersolverImpl class
> >
> > I'm not sure what to do to debug this.
> >
> > Thai
> >
>
>
> --
> Karl Pauls
> karlpauls@gmail.com
>



-- 
Castor Technologies Inc
460 rue St-Catherine St Ouest, Suite 613
Montréal, Québec H3B-1A7
(514) 360-7208 o
(514) 798-2044 f
ntle@castortech.com
www.castortech.com

CONFIDENTIALITY NOTICE: The information contained in this e-mail is
confidential and may be proprietary information intended only for the use
of the individual or entity to whom it is addressed. If the reader of this
message is not the intended recipient, you are hereby notified that any
viewing, dissemination, distribution, disclosure, copy or use of the
information contained in this e-mail message is strictly prohibited. If you
have received and/or are viewing this e-mail in error, please immediately
notify the sender by reply e-mail, and delete it from your system without
reading, forwarding, copying or saving in any manner. Thank you.
AVIS DE CONFIDENTIALITE: L’information contenue dans ce message est
confidentiel, peut être protégé par le secret professionnel et est réservé
à l'usage exclusif du destinataire. Toute autre personne est par les
présentes avisée qu'il lui est strictement interdit de diffuser, distribuer
ou reproduire ce message. Si vous avez reçu cette communication par erreur,
veuillez la détruire immédiatement et en aviser l'expéditeur. Merci.

Re: Felix takes forever to resolve dependencies

Posted by Karl Pauls <ka...@gmail.com>.
can you try with felix 6.0.0?

regards,

Karl

On Thursday, August 2, 2018, Nhut Thai Le <nt...@benchmarkconsulting.com>
wrote:

>  Hello,
>
> We are trying to integrate Keycloak admin-client and zk into our web app
> running on felix 5.6.10 using bndtool.
>
> If we use our web app with Keycloak admin-client alone, it's fine.
>
> If we use our web app with zk alone, it's also fine.
>
> When adding both Keycloak admin-client and zk, we are not able to start the
> container from bndrun. Looks like the framework resolver get stuck in
> resolving dependencies. Here is the stack of the main thread:
> Thread [main] (Suspended)
> waiting for: AtomicInteger  (id=29)
> Object.wait(long) line: not available [native method]
> AtomicInteger(Object).wait() line: 502
> ResolverImpl$EnhancedExecutor.await() line: 2523
> ResolverImpl.calculatePackageSpaces(ResolveSession, Candidates,
> Collection<Resource>) line: 1217
> ResolverImpl.checkConsistency(ResolveSession, Candidates,
> Map<Resource,ResolutionError>) line: 572
> ResolverImpl.findValidCandidates(ResolveSession,
> Map<Resource,ResolutionError>) line: 532
> ResolverImpl.doResolve(ResolveSession) line: 395
> ResolverImpl.resolve(ResolveContext, Executor) line: 377
> ResolverImpl.resolve(ResolveContext) line: 331
> StatefulResolver.resolve(Set<BundleRevision>, Set<BundleRevision>) line:
> 478
> Felix.resolveBundles(Collection<Bundle>) line: 4108
> FrameworkWiringImpl.resolveBundles(Collection<Bundle>) line: 133
> PackageAdminImpl.resolveBundles(Bundle[]) line: 267
> Launcher.startBundles(List<Bundle>) line: 489
> Launcher.activate() line: 423
> Launcher.run(String[]) line: 301
> Launcher.main(String[]) line: 147
>
> A small note here is that Keycloak admin-client uses resteasy which is not
> an osgi bundle so I wrap both admin-client, resteasy and its dependencies
> in an osgi bundle and enabling service loader mediator header so that the
> service files provided in the resteasy dependencies can be loaded.
>
> For debugging I downloaded the source of org.apache.felix.framework but it
> has no resolver/RersolverImpl class
>
> I'm not sure what to do to debug this.
>
> Thai
>


-- 
Karl Pauls
karlpauls@gmail.com