JB,
The configuration PID files already exist and are used by other components. 

Below are two use cases that will print the companyName property from the 
companyInfo configuration PID.  The component use case  works today.  Please 
complete the command use case.

***
* /etc/companyInfo.cfg
***
companyName = FooBar Inc.

***
* Component use case of getting companyName from customerInfo configuration PID 
***
@Component configuationPid = {"customerInfo"})
public class Foo implements FooService {

  @Activate
  protected activate(final Map<String,Object> configProperties) {
    String companyName = configProperties.get("companyName").toString();
    log.info("Foo Service activated for " companyName);
  }
}

***
* Command use case if getting companyName from customerInfo configuration PID 
***
@Service
@Command(scope = "customer", name = "info")
public class InfoCommand implements Action {

  @Override
  public Object execute(){
     // How to populate company name for customerInfo configuration PID? 
     String companyName = ?? 

     // Print company info
     System.out.println("Company name = " + companyName);
  }

Paul Spencer


> On May 13, 2022, at 12:53 PM, Jean-Baptiste Onofré <j...@nanthrax.net> wrote:
> 
> No, you don't need to have a cfg file.
> 
> You can create the config like this, if the pid doesn't exist, it will
> be created and populated with config:property-set.
> 
> Regards
> JB
> 
> On Fri, May 13, 2022 at 3:27 PM Paul Spencer <paulspen...@mindspring.com> 
> wrote:
>> 
>> JB,
>> The command needs to use values stored in pid.cfg files, like instance 
>> specific CustomerName, just like other components.
>> 
>> Paul Spencer
>> 
>>> On May 13, 2022, at 1:46 AM, Jean-Baptiste Onofré <j...@nanthrax.net> wrote:
>>> 
>>> Hi Paul,
>>> 
>>> Not sure I understand exactly the request, but you can do:
>>> 
>>> config:edit pid
>>> config:property-list ...
>>> config:cancel | config:commit
>>> 
>>> Regards
>>> JB
>>> 
>>> On Thu, May 12, 2022 at 6:38 PM Paul Spencer <paulspen...@mindspring.com> 
>>> wrote:
>>>> 
>>>> Karaf 4.3.6
>>>> I am looking to load configuration into a shell command, but I do not see 
>>>> where to set the configuration PID nor do I see where the configuration is 
>>>> passed or injected into the Action class.
>>>> 
>>>> 
>>>> In a component, the configuration loaded by @Activate is defined by 
>>>> @Component and the configurationPid attribute. What are the equivalents 
>>>> for shell commands, class that implement 
>>>> org.apache.karaf.shell.api.action.Action?
>>>> 
>>>> Paul Spencer
>> 

Reply via email to