* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param sink sink to which responses should be published
* @param source source from which requests arrive
*/
- public TopicServer(TopicSink sink, TopicSource source, Coder coder, Class<Q> reqClass) {
+ protected TopicServer(TopicSink sink, TopicSource source, Coder coder, Class<Q> reqClass) {
this.sink = sink;
this.source = source;
this.coder = coder;
throw new IllegalArgumentException("cannot decode request from " + source.getTopic());
}
- sink.send(process(req));
+ String resp = process(req);
+ if (resp != null) {
+ sink.send(resp);
+ }
}
+ /**
+ * Processes a request.
+ *
+ * @param request request to be processed
+ * @return the response, or {@code null} if no response is to be sent
+ */
protected abstract String process(Q request);
}