Oops my mistake.

Config tag must inline configuration. Did perform the change and the workaround 
works!

My question would be why first starting with karaf command-line works and why 
start command-line fails. Our bundles are level 80 so they must start after 
"core" bundles, correct?

JP

[@@ OPEN @@]


-----Message d'origine-----
De : CLEMENT Jean-Philippe [mailto:[email protected]] 
Envoyé : vendredi 29 août 2014 12:11
À : [email protected]
Objet : RE: constant defined in .cfg not resolved at first start

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

Reply via email to