[ 
https://issues.apache.org/jira/browse/KARAF-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763341#comment-17763341
 ] 

Andre Flakowski commented on KARAF-7694:
----------------------------------------

Thanks for the clarification. We were hoping to keep the number of customized 
config files small since we maintain quite a few custom assemblies.

Controlling this entirely via ENV would have been helpful in a docker setup 
without the need of file modifications.

If this is a high impact change in ConfAdmin I can look into a custom solution 
for our own purposes.

> Using system environment variables does not propagate to property usage in 
> same cfg file
> ----------------------------------------------------------------------------------------
>
>                 Key: KARAF-7694
>                 URL: https://issues.apache.org/jira/browse/KARAF-7694
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.3.3
>         Environment: Karaf 4.3.3 on Linux openjdk-17
>            Reporter: Andre Flakowski
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>
> Generally environment variable usage as described 
> [here|https://karaf.apache.org/manual/latest/#_environment_variables_system_properties]
>  works, but it does not propagate back to the config admin system and 
> therefore it seems that referencing the property in the same cfg file does 
> not resolve to the overriden value:
> Steps to reproduce:
>  # Using clean Karaf 4.3.3 on Linux openjdk 17
>  # export ORG_APACHE_KARAF_MANAGEMENT_RMIREGISTRYPORT=4242
>  # bin/karaf
> results in:
> {code:java}
> Unable to find source-code formatter for language: shell. Available languages 
> are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, 
> groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, 
> perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, 
> yamlkaraf: Enabling Java debug options: 
> -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
> Listening for transport dt_socket at address: 5005
> Exception in thread "JMX Connector Thread 
> [service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root]" 
> java.lang.RuntimeException: Could not start JMX connector server
>       at 
> org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:438)
>       at java.base/java.lang.Thread.run(Thread.java:833)
> Caused by: java.io.IOException: Cannot bind to URL 
> [rmi://127.0.0.1:1099/karaf-root]: javax.naming.CommunicationException [Root 
> exception is java.rmi.NoSuchObjectException: no such object in table]
>       at 
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:834)
>       at 
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:481)
>       at 
> org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:421)
>       ... 1 more
> Caused by: javax.naming.CommunicationException [Root exception is 
> java.rmi.NoSuchObjectException: no such object in table]
>       at 
> jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:163)
>       at 
> java.naming/com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:243)
>       at java.naming/javax.naming.InitialContext.bind(InitialContext.java:417)
>       at 
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:693)
>       at 
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:476)
>       ... 2 more
> Caused by: java.rmi.NoSuchObjectException: no such object in table
>       at 
> java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:304)
>       at 
> java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:280)
>       at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:381)
>       at 
> java.rmi/sun.rmi.registry.RegistryImpl_Stub.bind(RegistryImpl_Stub.java:73)
>       at 
> jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:157)
>       ... 6 more
> {code}
>  
> listing the config:
> {code:java}
> karaf@root()> cl org.apache.karaf.management
> ----------------------------------------------------------------
> Pid:            org.apache.karaf.management
> BundleLocation: ?
> Properties:
>    daemon = true
>    felix.fileinstall.filename = 
> file:/home/af/Desktop/apache-karaf-4.4.3/etc/org.apache.karaf.management.cfg
>    jmxRealm = karaf
>    jmxmpEnabled = false
>    jmxmpHost = 127.0.0.1
>    jmxmpObjectName = connector:name=jmxmp
>    jmxmpPort = 9999
>    jmxmpServiceUrl = service:jmx:jmxmp://127.0.0.1:9999
>    objectName = connector:name=rmi
>    rmiRegistryHost = 127.0.0.1
>    rmiRegistryPort = 4242
>    rmiServerHost = 127.0.0.1
>    rmiServerPort = 44444
>    service.pid = org.apache.karaf.management
>    serviceUrl = 
> service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root
>    threaded = true{code}
> rmiRegistryPort = 4242 is properly set.
> serviceUrl = 
> service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
> referencing rmiRegistryPort is still on 1099.
> assumably this should fail on other indirect variable usages as well.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to