public void apply() { final Map<String, Class<?>> classMappings = new HashMap<>(); classRegistrations.forEach((k, v) -> { classMappings.put(k, v.getMessageClass()); }); super.setIdClassMapping(classMappings); }
public void apply() { final Map<String, Class<?>> classMappings = new HashMap<>(); classRegistrations.forEach((k, v) -> { classMappings.put(k, v.getMessageClass()); }); super.setIdClassMapping(classMappings); }
@Bean public DefaultClassMapper classMapper() { DefaultClassMapper classMapper = new DefaultClassMapper(); Map<String, Class<?>> idClassMapping = new HashMap<>(); idClassMapping.put("foo", Foo.class); idClassMapping.put("bar", Bar.class); classMapper.setIdClassMapping(idClassMapping); return classMapper; }
private ClassMapper createClassMapper() { final Map<String, Class<?>> classMappings = new HashMap<>(); descriptions.forEach((k, v) -> classMappings.put(v.getType(), v.getMessageClass())); final DefaultClassMapper classMapper = new DefaultClassMapper(); classMapper.setIdClassMapping(classMappings); return classMapper; }
private ClassMapper createClassMapper() { final Map<String, Class<?>> classMappings = new HashMap<>(); descriptions.forEach((k, v) -> classMappings.put(v.getType(), v.getMessageClass())); final DefaultClassMapper classMapper = new DefaultClassMapper(); classMapper.setIdClassMapping(classMappings); return classMapper; }
-> classMappings.put(messageType, messageClass), messageClasses); classMapper.setIdClassMapping(classMappings);
/** * Default class mapper. Intentionally not using using the Registration Aware class mapper here. * * @return a simple class mapper */ private ClassMapper registrationClassMapper() { //stub DefaultClassMapper classMapper = new DefaultClassMapper(); final Map<String, Class<?>> classMappings = new HashMap<>(); List<Class<?>> messageClasses = asList(MessageRegistrationNotified.class, MessageRegistrationWithdrawn.class); MessageAnnotationProcessor messageAnnotationProcessor = new MessageAnnotationProcessor(); messageAnnotationProcessor.process(new MessageAnnotationProcessorCallback() { @Override public void found(String messageType, Class messageClass) { classMappings.put(messageType, messageClass); } }, messageClasses); classMapper.setIdClassMapping(classMappings); return classMapper; }
/** * Default class mapper. Intentionally not using using the Registration Aware class mapper here. * * @return a simple class mapper */ private ClassMapper registrationClassMapper() { //stub DefaultClassMapper classMapper = new DefaultClassMapper(); final Map<String, Class<?>> classMappings = new HashMap<>(); List<Class<?>> messageClasses = asList(MessageRegistrationNotified.class, MessageRegistrationWithdrawn.class); MessageAnnotationProcessor messageAnnotationProcessor = new MessageAnnotationProcessor(); messageAnnotationProcessor.process(new MessageAnnotationProcessorCallback() { @Override public void found(String messageType, Class messageClass) { classMappings.put(messageType, messageClass); } }, messageClasses); classMapper.setIdClassMapping(classMappings); return classMapper; }
classMapper.setIdClassMapping(classMappings);
classMapper.setIdClassMapping(classMappings);
@Test public void shouldUseTheCLassProvidedByTheLookupMapIfPresent() { props.getHeaders().put("__TypeId__", "trade"); classMapper.setIdClassMapping(map("trade", SimpleTrade.class)); @SuppressWarnings("rawtypes") Class clazz = classMapper.toClass(props); assertEquals(clazz, SimpleTrade.class); }
@Test public void shouldUseSpecialNameForClassIfPresent() throws Exception { classMapper.setIdClassMapping(map("daytrade", SimpleTrade.class)); classMapper.afterPropertiesSet(); classMapper.fromClass(SimpleTrade.class, props); String className = (String) props.getHeaders().get( classMapper.getClassIdFieldName()); assertThat(className, equalTo("daytrade")); }
@Bean public SimpleRabbitListenerContainerFactory jsonListenerContainerFactory() { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(rabbitConnectionFactory()); factory.setErrorHandler(errorHandler()); factory.setConsumerTagStrategy(consumerTagStrategy()); Jackson2JsonMessageConverter messageConverter = new Jackson2JsonMessageConverter(); DefaultClassMapper classMapper = new DefaultClassMapper(); Map<String, Class<?>> idClassMapping = new HashMap<String, Class<?>>(); idClassMapping.put( "org.springframework.amqp.rabbit.annotation.EnableRabbitIntegrationTests$Foo1", Foo2.class); classMapper.setIdClassMapping(idClassMapping); messageConverter.setClassMapper(classMapper); factory.setMessageConverter(messageConverter); factory.setReceiveTimeout(10L); factory.setConcurrentConsumers(2); return factory; }