イベントプロパティに要素がnullの可能性があるもののリストがあります。 null要素に一致するLDAP文字列を作成したいと思います。ヌル要素のLDAPイベントフィルタ
は、この実施例を考えてみましょう:私はvalue = null
を設定した場合
private final BundleContext context = FrameworkUtil.getBundle(LdapTest.class).getBundleContext();
private final EventAdmin eventAdmin = this.context.getService(this.context.getServiceReference(EventAdmin.class));
@Test
public void test() throws Exception {
final String value = "test";
// register a listener
final Dictionary<String, Object> serviceProperties = new Hashtable<>();
serviceProperties.put(EventConstants.EVENT_TOPIC, new String[] { "myTopic" });
serviceProperties.put(EventConstants.EVENT_FILTER, "(myProperty=" + value + ")");
final boolean[] called = { false };
final ServiceRegistration<EventHandler> listener = this.context.
registerService(EventHandler.class, e -> called[0] = true, serviceProperties);
// fire event
Assert.assertFalse(called[0]);
final Map<String, Object> eventProperties = new HashMap<>();
eventProperties.put("myProperty", Arrays.asList(value));
this.eventAdmin.sendEvent(new Event("myTopic", eventProperties));
Assert.assertTrue(called[0]);
listener.unregister();
}
は今、何EVENT_FILTER
は再びテスト作業をしたいと見ているのでしょうか?
"(!myProperty=*)
"と "(!(myProperty=*))
"を試しましたが、動作しません。
私はnullプロパティではありません。これはリスト内のnull要素です。リスト内の他の要素をフィルタリングすることができます。そのため、フィルタリングできません。 –
LDAPフィルタ式言語には、ヌル値を表現する方法がないため、その値をテストできます。 "null"は通常の文字列であり、null値を意味する特別な値ではありません。 –