2016-02-09 65 views
5

Ho il seguente servizio:Come utilizzare la proprietà multi valore (array) in OSGi?

@Component(
     immediate = true, 
     metatype = true) 
@Service 
@Property(name = EventConstants.EVENT_TOPIC, value = {ReplicationAction.EVENT_TOPIC}) 
public class MyService implements EventHandler { 

    @Property 
    private static final String MULTI_PROPERTY = "config.multiproperty"; 

    ........ 
    //another implementation 
    ........ 
} 

voglio MULTI_PROPERTY di essere il valore della matrice, per avere la possibilità di utilizzare un insieme di valori come sull'immagine:

enter image description here

Come per la sua attuazione ?

risposta

5

Utilizzare l'attributo unbounded per specificare la proprietà multivalore e utilizzare l'attributo cardinality per limitare il numero di voci.

@Property(unbounded = PropertyUnbounded.ARRAY, cardinality=10, label = "Some Label") 
private static final String MULTI_PROPERTY = "config.multiproperty"; 

Per leggere la matrice di proprietà è possibile utilizzare il metodo del #toStringArray()PropertiesUtil

PropertiesUtil.toStringArray(properties.get(MULTI_PROPERTY));