Reading enviroment variable in osgi blueprint

谁都会走 提交于 2019-12-13 06:07:02

问题


I'm building some camel routes deployed in OSGi (JBoss Fuse)

I'm reading my properties file using this:

  <ext:property-placeholder id="propiedades">
    <ext:location>file:/C:/TestBed/sucursal.propiedades</ext:location>
  </ext:property-placeholder>

But now I want change "file:/C:TestBed/" for some placeholder with some path (like KARAF_ETC). I know this enviroment variable exists because when I use it in the route, it works ok

    from(URI_IN)
    .log("{{env:KARAF_ETC}}") //Output is: C:\jboss-fuse-6.2.0.redhat-133\bin\..\etc
    .to(URI_OUT);

So, I want to do something like:

  <ext:property-placeholder id="propiedades">
    <ext:location>file:{{env:KARAF_ETC}}/sucursal.propiedades</ext:location>
  </ext:property-placeholder>

But does not work.

Property placeholder is kinda tricky, so I tried with file:/{{env:KARAF_ETC}}, file:/{{KARAF_ETC}}, file:${KARAF_ETC} and more combinations but no one works (but some of them throw differents errors).

What is the correct sintaxis to get the enviroments variables in blueprint?


回答1:


Have you tried this?

<blueprint 
xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" 
...> 

   <!-- Load system property --> 
   <ext:property-placeholder /> 

   <bean ...><property name="foobar" value="${foobar}"/></bean> 

</blueprint> 

I've found it here: http://karaf.922171.n3.nabble.com/Get-environment-variable-td4025807.html




回答2:


You can access to karaf enviroment vars using karaf.[something], but in camel you can access using KARAF_[SOMETHING]

Thanks Claus Ibsen for pointing the differences in the scopes...

nevertheless, this camel/osgi thing is really weird...It is hard to tame...




回答3:


This works for me:

<propertyPlaceholder id="properties" location="file:${karaf.home}/etc/sucursal.properties"/>


来源:https://stackoverflow.com/questions/31794470/reading-enviroment-variable-in-osgi-blueprint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!