Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alaz/170392 to your computer and use it in GitHub Desktop.
Save alaz/170392 to your computer and use it in GitHub Desktop.
/*
* Scala trait to hold Configuration Admin
*/
package com.yours.app
import org.osgi.service.cm.ConfigurationAdmin
trait ConfigAdminHolder {
protected var configAdmin: Option[ConfigurationAdmin] = None
def bindConfigAdmin(ca: ConfigurationAdmin): Unit = configAdmin = Some(ca)
def unbindConfigAdmin(ca: ConfigurationAdmin): Unit = configAdmin = None
}
/*
* OSGi component
*/
class Component extends ConfigAdminHolder {
def someMethod { /* make use of configAdmin */ }
}
/*
* OSGi component XML
*/
<?xml version="1.0" encoding="UTF-8"?>
<component name="My component">
<implementation class="com.yours.app.Component"/>
<reference
name="ConfigAdmin Service"
interface="org.osgi.service.cm.ConfigurationAdmin"
bind="bindConfigAdmin"
unbind="unbindConfigAdmin"
cardinality="1..1"
policy="dynamic"/>
</component>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment