Here’s how to create an OSGi configuration using the Felix Web Console:
- Open the Felix Web Console – In your browser, navigate to
http://localhost:4502/system/console/configMgr
. - Find the OSGi component – Find the OSGi component for which you want to create a configuration, and click on the corresponding link.
- Create the configuration – Click on the “Create” button in the top-right corner of the page, and enter the configuration values in the form that appears. You can set the configuration values for any properties defined by the OSGi component.
- Save the configuration – Click on the “Save” button at the bottom of the page to save the configuration.
Here’s how to create an OSGi configuration programmatically using the OSGi Configuration API:
1. Inject the ConfigurationAdmin service
Inject the org.osgi.service.cm.ConfigurationAdmin
service into your OSGi component using the @Reference
annotation. For example:
package com.example.service.impl; import org.osgi.service.cm.ConfigurationAdmin; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @Component public class MyService { @Reference private ConfigurationAdmin configAdmin; }
2. Create a configuration
Use the ConfigurationAdmin
service to create a new configuration for the OSGi component. For example:
Configuration config = configAdmin.createFactoryConfiguration("com.example.service.impl.MyService"); Dictionary<String, Object> props = new Hashtable<>(); props.put("myProperty", "myValue"); config.update(props);
In this example, we use the createFactoryConfiguration
method to create a new configuration for the MyService
OSGi component, and then set a custom property using a Hashtable
.
3. Save the configuration
Use the update
method of the Configuration
object to save the configuration changes. For example:
config.update(props);
That’s it! You have now created an OSGi configuration in AEM using the Felix Web Console or programmatically using the OSGi Configuration API.