@Override
	public PropertyAccessor createOptimalAccessor(EvaluationContext evalContext, Object target, String name) {
		if (target instanceof Message && !PAYLOAD.equals(name) && !HEADERS.equals(name)) {
			return new MessageOptimalPropertyAccessor(this.typeDescriptor);
		}
		return super.createOptimalAccessor(evalContext, target, name);
	}
A {@link PropertyAccessor} reading values from a backing {@link Message} used by a
partition key. In a way this is similar than {@link MapAccessor} for header but also
adds 'payload' and 'headers' to be resolved. Having 'payload' or 'headers' keywords
in headers is not possible to access via this accessor.

@author Janne Valkealahti
spring-xd-hadoop/src/main/java/org/springframework/xd/integration/hadoop/expression/MessagePartitionKeyPropertyAccessor.java