HI JB, this can be, I would have to check for each feature, but as said: when porting from Karaf 4.0.9 to 4.2.2, I guess this would have to be addressed more verbose -- some kind of warning message or something.
I will re-create feature file with suggested changes, but I stopped using dependency/prerequisite attributes, as I found out I ran into different set of problems. I had this kind of problems, when setting up JPA datasource - as conumers complaint to on start on missing datasource - but bundles installed and started. It is "strange" when command "feature:install foo" does not return to terminal and there is no message in log file. Thanks, kind regards, Miroslav V V sre., 5. sep. 2018 ob 10:08 je oseba Jean-Baptiste Onofré < j...@nanthrax.net> napisala: > Hi > > the resolver behavior is not exactly the same if you do: > > feature:install foo > > or > > feature:install jms bar foo > > If you feature expects another feature providing a service, than, the > "dependency" feature should be completely installed and started to provide > the services before your feature is install. > > For instance, if you have: > > <feature name="my" version="xx"> > <feature>foo</feature> > <bundle>mvn:my/my/xx</bundle> > </feature> > > If "my" bundle has a requirement to a service provided by foo, then, you > can have an issue as foo can be installed async. So, in that case, you > should first install and start foo first. You can achieve this using > prerequisite flag: > > <feature name="my" version="xx"> > <feature prerequisite="true">foo</feature> > <bundle>mvn:my/my/xx</bundle> > </feature> > > Do you think you are in this case ? > > Regards > JB > > On 05/09/2018 09:42, Miroslav Beranič wrote: > > Hi giys, > > I am tracking mailing list last few weeks, can be, I missed some mails. > > So, I think I have similar issue that what reported few days ago from > Thiago, with title "Unable to deploy a Karaf kar file containing a > ComponentFactory OSGi declarative service". > > I have application porting from ServiceMix 7.0.2 ( build from ServiceMix > GitHub master ) to Karaf 4.2.x ( fist 4.2.1 and now 4.2.2, both Github > source ). > > I have application in multiple Karaf Features. In ServiceMix 7.0.2 ( Karaf > 4.0.9 ) I install application with on "super parent" feature, that is a > tree of features ( XSD Feature namespace 1.0 ), so without dependencies or > prerequisite attributes. > > Same set of features, when deployed in Karaf 4.2.x is "blocked", it stops > in different steps, at different features. But this is in features of > pre-defined features, like JMS, JPA, Hibernate, ActiveMQ, ... > > Strange thing is, when I install one single feature at a time it works. > For example ( there is multiple such feature groups, just one here ): > > <feature name="my-infrastructure-requirements-jms" > version="${project.version}"> > <feature>aries-blueprint-spring</feature> > <feature version="[4.2.2, 5)">shell-compat</feature> > <feature version="[5.15.7, 6)">activemq-broker</feature> > <feature version="[5.15.7, 6)">activemq-cf</feature> > <feature version="[5.15.7, 6)">activemq-blueprint</feature> > > <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.camel/7.1.0-SNAPSHOT</bundle> > > <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.service/7.1.0-SNAPSHOT</bundle> > > <feature version="[4.2.2, 5)">jms</feature> > <feature version="[2.23.0, 3)">camel</feature> > <feature version="[2.23.0, 3)">camel-spring</feature> > <feature version="[2.23.0, 3)">camel-jms</feature> > <feature version="[2.23.0, 3)">camel-blueprint</feature> > <feature version="[2.23.0, 3)">camel-cxf</feature> > <feature version="[2.23.0, 3)">camel-jpa</feature> > <feature version="[1.0.2, 2)">pax-jms-activemq</feature> > <configfile > finalname="/etc/org.apache.servicemix.activemq.service.cfg"> > > mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.service/${project.version}/cfg/activemq-service > </configfile> > </feature> > > So almost always it stops somewhere when installing this feature, but when > I install it one by one -- it works. ( it never installed when installing > "feature groups", this is the "feature group" it stops most of the time, > other is JPA related "feature group" ). > > so: feature:install my-infrastructure-requirements-jms > > has message in log: > 2018-09-05T09:16:08,539 | INFO | pipe-feature:install > my-infrastructure-requirements-jms | FeaturesServiceImpl | 11 > - org.apache.karaf.features.core - 4.2.2.SNAPSHOT | Adding features: > my-infrastructure-requirements-jms/[2.0.0,2.0.0] > > That is all there is ... and it waits here, for ever. So it seems there is > really a condition race. So when I saw mail from Thiago, I am even more > sure, this is true. > > Here is full feature file. Please note, I have some features, to "fix" > feature install order - spring is a mess, as it starts to install version > 5, as "best one" but this is not the case for me - as I want to use > ActiveMQ. ( you can see I also use "future" version of ActiveMQ 5.15.7 - my > own build with updated versions of dependencies in ActiveMQ, same behaviour > is with "stock" version, so I do not see problem in this ). Other issue ( > was ) with Jetty version 9.4.10 and 9.4.11, but this is fixed no in Karaf. > > Also ServiceMix 7.1.0-SNAPSHOT is my own build of source code from > 7.0.2-SNAPSHOT, to re-use ActiveMQ connection factory ( this is Servicemix > 7.0.2 with updated Camel version ). > > Here I use feature xsd namespace 1.4.0 > > <?xml version="1.0" encoding="UTF-8"?> > <features name="framework-${project.version}" > xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation=" > http://karaf.apache.org/xmlns/features/v1.4.0 > http://karaf.apache.org/xmlns/features/v1.4.0"> > > > <repository>mvn:org.apache.camel.karaf/apache-camel/${org.apache.camel.version}/xml/features</repository> > > <repository>mvn:org.apache.activemq/activemq-karaf/${org.apache.activemq.version}/xml/features</repository> > > <repository>mvn:org.apache.karaf.features/spring-legacy/${org.apache.karaf.version}/xml/features</repository> > > <repository>mvn:org.ops4j.pax.jms/pax-jms-features/${org.ops4j.pax.jms.version}/xml/features</repository> > > <repository>mvn:org.ops4j.pax.web/pax-web-features/${org.ops4j.pax.web.version}/xml/features</repository> > > <feature name="my-infrastructure-requirements-spring-43" > version="${project.version}"> > <feature version="[4.3.18, 5)">spring</feature> > <feature version="[4.3.18, 5)">spring-tx</feature> > <feature version="[4.3.18, 5)">spring-jms</feature> > <feature version="[4.3.18, 5)">spring-orm</feature> > <feature version="[4.3.18, 5)">spring-oxm</feature> > <!-- Jetty --> > <feature version="[4.3.18, 5)">spring-web</feature> > <feature version="[4.3.18, 5)">spring-web-portlet</feature> > <feature version="[4.3.18, 5)">spring-websocket</feature> > </feature> > > <feature name="my-infrastructure-requirements-cxf" > version="${project.version}"> > <feature version="[3.2.5, 4)">cxf</feature> > <feature version="[3.2.5, 4)">cxf-jaxws</feature> > <feature version="[3.2.5, 4)">cxf-jaxrs</feature> > </feature> > > <feature name="my-infrastructure-requirements-jpa" > version="${project.version}"> > <feature version="[4.2.2, 5]">jdbc</feature> > <feature version="[2.7.0, 3)">jpa</feature> > <feature version="[5.2.9, 6)">hibernate</feature> > <feature version="[1.3.0, 2)">pax-jdbc-postgresql</feature> > <feature version="[1.3.0, 2)">pax-jdbc-pool-c3p0</feature> > <feature version="[4.2.2, 5)">aries-blueprint</feature> > <capability> > > osgi.service;objectClass=javax.persistence.spi.PersistenceProvider;effective:=active;javax.persistence.provider=org.hibernate.jpa.HibernatePersistenceProvider > </capability> > </feature> > > <feature name="my-infrastructure-requirements-jms" > version="${project.version}"> > <feature>aries-blueprint-spring</feature> > <feature version="[4.2.2, 5)">shell-compat</feature> > <feature version="[5.15.7, 6)">activemq-broker</feature> > <feature version="[5.15.7, 6)">activemq-cf</feature> > <feature version="[5.15.7, 6)">activemq-blueprint</feature> > > <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.camel/7.1.0-SNAPSHOT</bundle> > > <bundle>mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.service/7.1.0-SNAPSHOT</bundle> > > <feature version="[4.2.2, 5)">jms</feature> > <feature version="[2.23.0, 3)">camel</feature> > <feature version="[2.23.0, 3)">camel-spring</feature> > <feature version="[2.23.0, 3)">camel-jms</feature> > <feature version="[2.23.0, 3)">camel-blueprint</feature> > <feature version="[2.23.0, 3)">camel-cxf</feature> > <feature version="[2.23.0, 3)">camel-jpa</feature> > <feature version="[1.0.2, 2)">pax-jms-activemq</feature> > <configfile > finalname="/etc/org.apache.servicemix.activemq.service.cfg"> > > mvn:org.apache.servicemix.activemq/org.apache.servicemix.activemq.service/${project.version}/cfg/activemq-service > </configfile> > </feature> > <feature name="my-infrastructure-requirements-initial" > version="${project.version}"> > <feature version="[4.2.2, 5)">scr</feature> > <feature version="[4.2.2, 5)">jndi</feature> > <feature version="[2.0.0, 3)">transaction</feature> > <feature version="[1.0.0, 2)">pax-cdi</feature> > </feature> > > <feature name="my-infrastructure-requirements-ext" > version="${project.version}"> > <feature > version="${project.version}">my-infrastructure-requirements-spring-43</feature> > <feature version="[1.3.0, 2)">pax-jdbc-config</feature> > > <feature version="[3.2.5, 4)">cxf-transports-jms</feature> > </feature> > > <feature name="my-infrastructure-datasource" > version="${project.version}"> > > <bundle>mvn:com.miroslav.my.infrastructure/data-source/${project.version}</bundle> > </feature> > > <feature name="my-infrastructure-toolbox" version="${project.version}"> > > <bundle>mvn:com.miroslav.my.infrastructure/toolbox/${project.version}</bundle> > > <bundle>mvn:com.miroslav.my.infrastructure/toolbox-shell-command/${project.version}</bundle> > </feature> > > <feature name="my-infrastructure-webservice" > version="${project.version}"> > > <bundle>mvn:com.miroslav.my.infrastructure.webservice/model/${project.version}</bundle> > > <bundle>mvn:com.miroslav.my.infrastructure.webservice/toolbox/${project.version}</bundle> > </feature> > > <feature name="my-infrastructure" version="${project.version}"> > <feature > version="${project.version}">my-infrastructure-requirements-spring-43</feature> > <feature > version="${project.version}">my-infrastructure-requirements-jpa</feature> > <feature > version="${project.version}">my-infrastructure-requirements-cxf</feature> > <feature > version="${project.version}">my-infrastructure-requirements-jms</feature> > <feature > version="${project.version}">my-infrastructure-datasource</feature> > <feature > version="${project.version}">my-infrastructure-toolbox</feature> > <feature > version="${project.version}">my-infrastructure-webservice</feature> > </feature> > </features> > > > If you need some more info, please let me know. ( this feature file is "a > mess", as I did not know what is wrong ... so no need to judge it for its > beauty please :D :D ) > > I am building ActiveMQ, Camel, Pax, Karaf, Hibernate ... SNAPSHOT versions > daily and testing it. > > Kind Regards, > Miroslav > > > > -- > Miroslav Beranič > MIBESIS > +386(0)40/814-843 > miroslav.bera...@mibesis.si > http://www.mibesis.si > > > -- Miroslav Beranič MIBESIS +386(0)40/814-843 miroslav.bera...@mibesis.si http://www.mibesis.si