@Override
    protected void onInit() throws Exception {
        super.onInit();
        if (!this.evaluationContextSet) {
            this.evaluationContext = IntegrationContextUtils.getEvaluationContext(getBeanFactory());
        }
    }
Adapts the item at a time delivery of a {@link org.springframework.messaging.MessageHandler}
by delegating processing to an Observable based on a partitionExpression.
<p/>
The specific Observable that the message is delegated is determined by the partitionExpression value.
Unless you change the scheduling of the inputStream in your processor, you should ensure that the
partitionExpression does not map messages delivered on different message bus dispatcher threads to the same
observable.  This is due to the underlying use of a <code>PublishSubject</code>.
<p/>
For example, using the expression <code>T(java.lang.Thread).currentThread().getId()</code> would map the current
dispatcher thread id to an instance of a RxJava Observable.  If you wanted to have an Observable per
Kafka partition, the expression header['kafka_partition_id'] since the MessageBus dispatcher thread will be
the same for each partition.
<p/>
If the Observable mapped to the partitionExpression value has an error or completes, it will be recreated when the
next message consumed maps to the same partitionExpression value.
<p/>
All error handling is the responsibility of the processor implementation.

@author Mark Pollack
@author Gary Russell
spring-xd-rxjava/src/main/java/org/springframework/xd/rxjava/MultipleSubjectMessageHandler.java