private ServiceReference[] find(Descriptor a) { String className = a.getClassName(); String filter = OSGiRegistryUtil.getPropertiesFilter(a); try{ return myContext.getServiceReferences(className, filter); }catch(InvalidSyntaxException ex){ theLogger.log(Level.SEVERE, "Invalid LDAP filter: " + filter, ex); return null; } }
public void updateDisplay(Boolean status){ updateStatus(status); if(myDependency == null){ lblName.setText("--"); lblFilter.setText("--"); lblType.setText("--"); return; } String name = myDependency.getDependencyName(); Descriptor desc = myDependency.getDescriptor(); String type = desc.getClassName(); Properties props = new Properties(); for(String key: desc.getPropertyKeys()){ props.put(key, desc.getProperty(key)); } String filter = OSGiUtils.createServiceFilter(props); name = name == null ? "--" : name; type = type == null ? "--" : type; filter = filter == null ? "--" : filter; lblName.setText(name); lblFilter.setText(filter); lblType.setText(type); }
public void updateDisplay(Boolean status){ updateStatus(status, null); if(myDependency == null){ lblName.setText("--"); lblFilter.setText("--"); lblType.setText("--"); return; } String name = myDependency.getDependencyName(); Descriptor desc = myDependency.getDescriptor(); String type = desc.getClassName(); Properties props = new Properties(); for(String key: desc.getPropertyKeys()){ props.put(key, desc.getProperty(key)); } String filter = OSGiUtils.createServiceFilter(props); name = name == null ? "--" : name; type = type == null ? "--" : type; filter = filter == null ? "--" : filter; lblName.setText(name); lblFilter.setText(filter); lblType.setText(type); }
/** * Converts a descriptor into an OSGi filter string. * @param a the descriptor * @return an OSGi filter string */ public static String getFullFilter(Descriptor a) { Set<String> keys = a.getPropertyKeys(); List<String> conditions = new ArrayList<String>(keys.size()); for(String key : a.getPropertyKeys()){ String val = a.getProperty(key); String condition = format(key, val); conditions.add(condition); } conditions.add(format(Constants.OBJECTCLASS, a.getClassName())); String filter; if(conditions.size() > 1) { filter = combine(conditions); } else if(conditions.size() == 1) { filter = conditions.get(0); } else { filter = null; } return filter; }