in jbi/cluster/engine/src/main/java/org/apache/servicemix/jbi/cluster/engine/SimpleClusterRegistration.java [94:140]
public void init() throws Exception {
if (endpoint instanceof Endpoint) {
nmrEndpoint = (Endpoint) endpoint;
}
if (endpoint != null && implement(endpoint.getClass(), SMX_COMMON_ENDPOINT_CLASS_NAME)) {
serviceName = (QName) invoke(endpoint, "getService");
endpointName = (String) invoke(endpoint, "getEndpoint");
}
if (nmrEndpoint == null) {
List<String> filters = new ArrayList<String>();
if (filter != null) {
filters.add(filter);
}
if (interfaceName != null) {
filters.add(Endpoint.INTERFACE_NAME + "=" + interfaceName.toString());
}
if (serviceName != null) {
filters.add(Endpoint.SERVICE_NAME + "=" + serviceName.toString());
}
if (endpointName != null) {
filters.add(Endpoint.ENDPOINT_NAME + "=" + endpointName);
}
if (name != null) {
filters.add(Endpoint.NAME + "=" + name);
}
if (filters.isEmpty()) {
throw new IllegalArgumentException("one field to match on must be set");
}
String f;
if (filters.size() == 1) {
f = "(" + filters.get(0) + ")";
} else {
StringBuilder sb = new StringBuilder();
sb.append("(&");
for (String sf : filters) {
if (sf.startsWith("(")) {
sb.append(sf);
} else {
sb.append("(").append(sf).append(")");
}
}
sb.append(")");
f = sb.toString();
}
osgiFilter = FrameworkUtil.createFilter(f);
}
}