Is there an equivalent to finalname in config tag? PS: changed "finalname" to "name" (and configfile to config) but etc is not populated with our config files anymore
JP [@@ OPEN @@] -----Message d'origine----- De : Jean-Baptiste Onofré [mailto:[email protected]] Envoyé : vendredi 29 août 2014 11:50 À : [email protected] Objet : Re: constant defined in .cfg not resolved at first start I think it's a race condition depending the way your provisiong cfg by your feature, depending if you use <config/> / <configfile/>. Let me explain: - at first start, the feature XML <configfile/> provision the cfg file in the etc folder, but I bet that the features install is in parallel or too early (before the cfg file is loaded on ConfigAdmin) - at second start, the cfg file is loaded in ConfigAdmin first, so blueprint-cm will "show" it. So, I think it should work using <config/> instead of <configfile/> (as it uses ConfigAdmin directly, it doesn't wait the polling from FileInstall). Regards JB On 08/29/2014 11:39 AM, DERIES Sebastien wrote: > Dear Karaf members, > > Our Karaf application encounters a strange behavior at the first > launch using the karaf/bin/start script: the application is not fully > started due to exceptions. The error only happens during the first > launch. If we start the application afterwards using karaf/bin/start > it works perfectly fine. > > The error we have is that our constants defined in .cfg files are not > replaced by their value at the first launch using bin/start. > > Everything works fine using bin/karaf the first time. > > Here is the exception (I changed constant name and classes): > > Caused by: > org.osgi.service.blueprint.container.ComponentDefinitionException: > Error setting property: PropertyDescriptor <name: MyConstant, getter: > class mypackage. > > MyClass.getMaxValue(), setter: [class > mypackage.MyClass.setMyConstant(float)] > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe > .java:941)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanReci > pe.java:907)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanReci > pe.java:888)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRe > cipe.java:820)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRec > ipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.jav > a:79)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40-ea] > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:88)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java: > 62)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:106)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe > .java:268)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRe > cipe.java:806)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRec > ipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.jav > a:79)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40-ea] > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:88)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java: > 62)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:106)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe > .java:268)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRe > cipe.java:806)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRec > ipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.jav > a:79)[19:org.apache.aries.blueprint.core:1.4.1] > > > at > java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40-ea] > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:88)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java: > 62)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:106)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe > .java:933)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanReci > pe.java:907)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanReci > pe.java:888)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRe > cipe.java:820)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRec > ipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.jav > a:106)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.di.CollectionRecipe.internalCreate(Collecti > onRecipe.java:90)[19:org.apache.aries.blueprint.core:1.4.1] > > ... 22 more > > Caused by: java.lang.NumberFormatException: For input string: > "$(MyConstant)" > > at > sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:204 > 3)[:1.8.0_40-ea] > > at > sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)[:1.8.0_4 > 0-ea] > > at java.lang.Float.parseFloat(Float.java:451)[:1.8.0_40-ea] > > at java.lang.Float.valueOf(Float.java:416)[:1.8.0_40-ea] > > at > org.apache.aries.blueprint.container.AggregateConverter.convertFromStr > ing(AggregateConverter.java:287)[19:org.apache.aries.blueprint.core:1. > 4.1] > > at > org.apache.aries.blueprint.container.AggregateConverter.convert(Aggreg > ateConverter.java:174)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BlueprintRepository.convert(Bluep > rintRepository.java:402)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.co > nvert(ReflectionUtils.java:394)[19:org.apache.aries.blueprint.core:1.4 > .1] > > at > org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescrip > tor.internalSet(ReflectionUtils.java:628)[19:org.apache.aries.blueprin > t.core:1.4.1] > > at > org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.se > t(ReflectionUtils.java:378)[19:org.apache.aries.blueprint.core:1.4.1] > > at > org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe > .java:939)[19:org.apache.aries.blueprint.core:1.4.1] > > KARAF VERSION : 3.0.2-SNAPSHOT (last week) > > Using karaf feature and assembly > > Thanks ! > > Regards > > ---------------------------------------------------------------------- > -- > > > > > > *Sébastien Deries* > Tel. : + 33 (0)4 92 96 31 52 > [email protected] > <mailto:[email protected]>** > > > -- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
