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") }; }