A little experiment with karaf.framework=equinox:
2015-08-31 21:55:47,742 | WARN | pool-1-thread-1 | Activator
| 8 - org.apache.karaf.features.core - 4.0.1 | Error
starting activator
java.lang.IllegalStateException: BundleContext is no longer valid
at
org.eclipse.osgi.internal.framework.BundleContextImpl.checkValid(BundleContextImpl.java:983)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:463)[org.eclipse.osgi-3.10.2.v20150203-1939.jar:]
at
org.apache.karaf.util.tracker.BaseActivator.registerMBean(BaseActivator.java:290)[8:org.apache.karaf.features.core:4.0.1]
at
org.apache.karaf.features.internal.osgi.Activator.doStart(Activator.java:262)[8:org.apache.karaf.features.core:4.0.1]
at
org.apache.karaf.util.tracker.BaseActivator.run(BaseActivator.java:233)[8:org.apache.karaf.features.core:4.0.1]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_05]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_05]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_05]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_05]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_05]
On Mon, Aug 31, 2015 at 9:28 PM, Benson Margulies <[email protected]> wrote:
> I tried to use 5.2.0 as the framework, but I did not get very far.
>
> In pax-exam, I can't see a way to arrange a jar into the system
> directory, given the UUID name of the deployment and the lack of a
> deployment option for this.
>
> So, I tried to install my features from command line.
>
> I added my feature.xml as a feature repo, and then tried to install it.
>
> The feature I tried to install starts with:
>
> <bundle>mvn:com.basistech.ws/rosapi-common/1.5.0-SNAPSHOT</bundle>
>
> and that file is most certainly sitting in my local maven repo, and
> has the qualified version called for, and yet:
>
> feature:install rosapi-common
>
> yielded the following error:
>
>
> 2015-08-31 21:21:29,131 | DEBUG | ool-102-thread-3 |
> DefaultLocalRepositoryProvider | 7 - org.ops4j.pax.url.mvn - 2.4.1 |
> Using manager SimpleLocalRepositoryManager with priority 0.0 for
> /Users/benson/.m2/repository
> 2015-08-31 21:21:29,131 | DEBUG | ool-102-thread-3 |
> AetherBasedResolver | 1 -
> org.ops4j.pax.logging.pax-logging-api - 1.8.3 | Resolved
> (org.eclipse.jetty:jetty-rewrite:jar:9.2.10.v20150310) as
> /Users/benson/.m2/repository/org/eclipse/jetty/jetty-rewrite/9.2.10.v20150310/jetty-rewrite-9.2.10.v20150310.jar
> 2015-08-31 21:21:29,132 | DEBUG | ool-102-thread-7 |
> DefaultLocalRepositoryProvider | 7 - org.ops4j.pax.url.mvn - 2.4.1 |
> Using manager SimpleLocalRepositoryManager with priority 0.0 for
> /Users/benson/.m2/repository
>
> 2015-08-31 21:21:29,294 | DEBUG | nsole user karaf |
> LoggingCommandSessionListener | 43 - org.apache.karaf.shell.core -
> 4.0.1 | Command: 'feature:install rosapi-common' failed:
> org.osgi.service.resolver.ResolutionException: Unable to resolve root:
> missing requirement [root] osgi.identity; osgi.identity=rosapi-common;
> type=karaf.feature; version="[1.5.0.SNAPSHOT,1.5.0.SNAPSHOT]";
> filter:="(&(osgi.identity=rosapi-common)(type=karaf.feature)(version>=1.5.0.SNAPSHOT)(version<=1.5.0.SNAPSHOT))"
> [caused by: Unable to resolve rosapi-common/1.5.0.SNAPSHOT: missing
> requirement [rosapi-common/1.5.0.SNAPSHOT] osgi.identity;
> osgi.identity=com.basistech.ws.rosapi-common; type=osgi.bundle;
> version="[1.5.0.v20150831073628,1.5.0.v20150831073628]";
> resolution:=mandatory [caused by: Unable to resolve
> com.basistech.ws.rosapi-common/1.5.0.v20150831073628: missing
> requirement [com.basistech.ws.rosapi-common/1.5.0.v20150831073628]
> osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.8))"]]
> 2015-08-31 21:21:29,294 | ERROR | nsole user karaf | ShellUtil
> | 43 - org.apache.karaf.shell.core - 4.0.1 | Exception
> caught while executing command
> org.osgi.service.resolver.ResolutionException: Unable to resolve root:
> missing requirement [root] osgi.identity; osgi.identity=rosapi-common;
> type=karaf.feature; version="[1.5.0.SNAPSHOT,1.5.0.SNAPSHOT]";
> filter:="(&(osgi.identity=rosapi-common)(type=karaf.feature)(version>=1.5.0.SNAPSHOT)(version<=1.5.0.SNAPSHOT))"
> [caused by: Unable to resolve rosapi-common/1.5.0.SNAPSHOT: missing
> requirement [rosapi-common/1.5.0.SNAPSHOT] osgi.identity;
> osgi.identity=com.basistech.ws.rosapi-common; type=osgi.bundle;
> version="[1.5.0.v20150831073628,1.5.0.v20150831073628]";
> resolution:=mandatory [caused by: Unable to resolve
> com.basistech.ws.rosapi-common/1.5.0.v20150831073628: missing
> requirement [com.basistech.ws.rosapi-common/1.5.0.v20150831073628]
> osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.8))"]]
> at
> org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42)[org.apache.felix.framework-5.2.0.jar:]
> at
> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:236)[org.apache.felix.framework-5.2.0.jar:]
> at
> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:159)[org.apache.felix.framework-5.2.0.jar:]
> at
> org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:220)[8:org.apache.karaf.features.core:4.0.1]
> at
> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)[8:org.apache.karaf.features.core:4.0.1]
> at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1079)[8:org.apache.karaf.features.core:4.0.1]
> at
> org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:975)[8:org.apache.karaf.features.core:4.0.1]
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_72]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_72]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_72]
> at java.lang.Thread.run(Thread.java:745)[:1.7.0_72]
>
> On Mon, Aug 31, 2015 at 7:58 PM, Benson Margulies <[email protected]>
> wrote:
>> See [email protected]:bimargulies/karaf-loop-tc.git.
>>
>> The master branch just sits there, but I don't see the loop in the
>> resolver, more's the pity.
>>
>> The loop-by-reorder branch initialized over and over; this one has the
>> boot list set to the following, and then cxf and my feature get added
>> to the end by pax-exam.
>>
>>
>> (aries-blueprint, bundle, config, deployer, diagnostic, feature,
>> instance, jaas, kar, log, management, package, service, shell,
>> shell-compat, ssh, system, wrap)
>>
>> On Mon, Aug 31, 2015 at 5:22 PM, <[email protected]> wrote:
>>> I still appear to have a similar issue. When getting here
>>>
>>>
>>>
>>> 2015-08-31 17:20:18,336 | INFO | pool-22-thread-1 | core | 29 -
>>> org.apache.aries.jmx.core - 1.1.3 | Registering
>>> org.osgi.jmx.framework.ServiceStateMBean to MBeanServer
>>> com.sun.jmx.mbeanserver.JmxMBeanServer@47ff55b4 with name
>>> osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=f82cc08d-58fc-48e2-add0-b70ab9fe246a
>>> 2015-08-31 17:20:18,336 | INFO | pool-22-thread-1 | ScrServiceMBeanImpl | 64
>>> - org.apache.karaf.scr.management - 4.0.1 | Activating the Apache Karaf SCR
>>> Service MBean
>>>
>>>
>>>
>>> It just stops and waits for about a minute before it fails. This is only
>>> when I replace the features.cfg file
>>>
>>>
>>>
>>>
>>>
>>> On 2015-08-31 16:23, [email protected] wrote:
>>>
>>> Nevermind. I was pointing at the wrong file. I should have debugged more
>>> before posting.
>>>
>>>
>>>
>>>
>>>
>>> On 2015-08-31 16:07, [email protected] wrote:
>>>
>>> When using the replaceConfigurationFile route my test never can connect to
>>> RMI.
>>>
>>> It seems to fail after this
>>>
>>> 2015-08-31 16:01:10,692 | INFO | pool-31-thread-1 | TldScanner | 106 -
>>> org.ops4j.pax.web.pax-web-jsp - 4.2.0 | found TLD
>>> bundle://106.0:0/META-INF/x.tld
>>> 2015-08-31 16:01:10,707 | INFO | pool-31-thread-1 | ContextHandler | 87 -
>>> org.eclipse.jetty.util - 9.2.10.v20150310 | Started
>>> HttpServiceContext{httpContext=DefaultHttpContext
>>> [bundle=org.apache.karaf.webconsole.gogo [65], contextID=default]}
>>>
>>> When I have the same features as in the cfg file added through the
>>> KarafDistributionOption.features method everything seems to work ok. Is
>>> there not a way to specify boot order while using the
>>> KarafDistributionOption.features code.
>>>
>>>
>>>
>>>
>>>
>>> On 2015-08-31 14:54, [email protected] wrote:
>>>
>>> Ok. I will use that method and the replaceconfigurationfile option in
>>> paxexam. Thank you for that help. I am going under the assumption that
>>> things specified like KarafDistributionOption.features(karafStandardRepo,
>>> "wrap") in the options section of paxexam will run after all the things
>>> specified in the featuresBoot section of the org.apache.karaf.features.cfg
>>> file.
>>>
>>>
>>>
>>> Thank you for all your help.
>>>
>>>
>>>
>>>
>>>
>>> On 2015-08-31 14:49, Jean-Baptiste Onofré wrote:
>>>
>>> In the featuresBoot, you can define stage:
>>>
>>> featuresBoot=(aries-blueprint),camel-blueprint
>>>
>>> like this, aries-bluerint is installed in the stage earlier than
>>> camel-blueprint.
>>>
>>> Regards
>>> JB
>>>
>>> On 08/31/2015 08:48 PM, [email protected] wrote:
>>>
>>> I have it in there in my custom build but I have camel in there as well.
>>> Should camel be moved out and if so where can I put camel to be installed
>>> after the boot features. In my integration test how would I overwrite that
>>> file or specify which features are boot features. Thanks for any help, David
>>> On 2015-08-31 14:43, Jean-Baptiste Onofré wrote:
>>>
>>> You can define aries-blueprint as a boot features by update
>>> etc/org.apache.karaf.features.cfg. Regards JB On 08/31/2015 08:35
>>> PM,[email protected] <mailto:[email protected]> wrote:
>>>
>>> Aries-blueprint doesn't seem to be a prerequisite in camels features.xml but
>>> it is required for the camel feature in karaf 4.0.1.
>>> http://repo1.maven.org/maven2/org/apache/camel/karaf/apache-camel/2.15.3/apache-camel-2.15.3-features.xml
>>> Is there a way in my test to make sure that aries-blueprint is loaded before
>>> camel. MavenArtifactUrlReference karafUrl =
>>> CoreOptions.maven().groupId("org.apache.karaf").artifactId("apache-karaf").version("4.0.1").type("tar.gz");
>>> MavenUrlReference karafStandardRepo = CoreOptions.maven()
>>> .groupId("org.apache.karaf.features") .artifactId("standard")
>>> .version("4.0.1") .classifier("features") .type("xml"); MavenUrlReference
>>> karafCxfRepo = CoreOptions.maven() .groupId("org.apache.cxf.karaf")
>>> .artifactId("apache-cxf") .version("3.1.2") .classifier("features")
>>> .type("xml"); MavenUrlReference karafCamelRepo = CoreOptions.maven()
>>> .groupId("org.apache.camel.karaf") .artifactId("apache-camel")
>>> .version("2.15.3") .classifier("features") .type("xml"); return new
>>> Option[]{
>>> KarafDistributionOption.karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache
>>> Karaf"). unpackDirectory(new
>>> File("target/paxexam/unpack")).useDeployFolder(false),
>>> KarafDistributionOption.keepRuntimeFolder(),
>>> CoreOptions.systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("DEBUG"),
>>> CoreOptions.repository("http://artifactory.orbistechnologies.com/artifactory/repo").id("orbis").allowSnapshots(),
>>> KarafDistributionOption.editConfigurationFilePut(CustomProperties.KARAF_FRAMEWORK,
>>> "felix"), // disable JMX RBAC security, thanks to the
>>> KarafMBeanServerBuilder
>>> KarafDistributionOption.configureSecurity().disableKarafMBeanServerBuilder(),
>>> KarafDistributionOption.logLevel(LogLevel.INFO),
>>> KarafDistributionOption.features(karafStandardRepo, "wrap"),
>>> KarafDistributionOption.features(karafStandardRepo, "aries-blueprint"),
>>> KarafDistributionOption.features(karafStandardRepo, "shell"),
>>> KarafDistributionOption.features(karafStandardRepo, "shell-compat"),
>>> KarafDistributionOption.features(karafStandardRepo, "feature"),
>>> KarafDistributionOption.features(karafStandardRepo, "jaas"),
>>> KarafDistributionOption.features(karafStandardRepo, "ssh"),
>>> KarafDistributionOption.features(karafStandardRepo, "management"),
>>> KarafDistributionOption.features(karafStandardRepo, "bundle"),
>>> KarafDistributionOption.features(karafStandardRepo, "config"),
>>> KarafDistributionOption.features(karafStandardRepo, "deployer"),
>>> KarafDistributionOption.features(karafStandardRepo, "diagnostic"),
>>> KarafDistributionOption.features(karafStandardRepo, "feature"),
>>> KarafDistributionOption.features(karafStandardRepo, "instance"),
>>> KarafDistributionOption.features(karafStandardRepo, "kar"),
>>> KarafDistributionOption.features(karafStandardRepo, "log"),
>>> KarafDistributionOption.features(karafStandardRepo, "package"),
>>> KarafDistributionOption.features(karafStandardRepo, "service"),
>>> KarafDistributionOption.features(karafStandardRepo, "system"),
>>> KarafDistributionOption.features(karafStandardRepo, "war"),
>>> KarafDistributionOption.features(karafStandardRepo, "webconsole"),
>>> KarafDistributionOption.features(karafStandardRepo, "scr"),
>>> KarafDistributionOption.features(karafStandardRepo, "transaction"),
>>> KarafDistributionOption.features(karafCxfRepo, "cxf-jaxrs"),
>>> KarafDistributionOption.features(karafCamelRepo, "camel"),
>>> KarafDistributionOption.features(karafFitRepo, "hazelcast"),
>>> KarafDistributionOption.features(karafFitRepo, "rest-socket"),
>>> KarafDistributionOption.features(karafFitRepo, "hadoop") }; }