@Override protected void append(ILoggingEvent event) { if (isIncludeCallerData()) { event.getCallerData(); } event.getThreadName(); this.events.add(new Event(event)); }
/** * Create the {@link ConnectionFactory}. * * @return a {@link ConnectionFactory}. */ protected ConnectionFactory createRabbitConnectionFactory() { RabbitConnectionFactoryBean factoryBean = new RabbitConnectionFactoryBean(); configureRabbitConnectionFactory(factoryBean); try { factoryBean.afterPropertiesSet(); return factoryBean.getObject(); } catch (Exception e) { addError("Failed to create customized Rabbit ConnectionFactory.", e); return null; } }
@Bean @Scope(BeanDefinition.SCOPE_PROTOTYPE) public TestListener testListener(int count) { return new TestListener(count); } }
@Test public void testSslConfigurationWithKeyAndTrustStore() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); String keyStore = "file:/path/to/client/keycert.p12"; String keyStorePassphrase = "secret"; String keyStoreType = "foo"; String trustStore = "file:/path/to/client/truststore"; String trustStorePassphrase = "secret2"; String trustStoreType = "bar"; appender.setKeyStore(keyStore); appender.setKeyStorePassphrase(keyStorePassphrase); appender.setKeyStoreType(keyStoreType); appender.setTrustStore(trustStore); appender.setTrustStorePassphrase(trustStorePassphrase); appender.setTrustStoreType(trustStoreType); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean).setUseSSL(eq(true)); verify(bean, never()).setSslPropertiesLocation(any()); verify(bean).setKeyStore(keyStore); verify(bean).setKeyStorePassphrase(keyStorePassphrase); verify(bean).setKeyStoreType(keyStoreType); verify(bean).setTrustStore(trustStore); verify(bean).setTrustStorePassphrase(trustStorePassphrase); verify(bean).setTrustStoreType(trustStoreType); }
@Test public void testSslConfigurationWithAlgorithm() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); String sslAlgorithm = "TLSv2"; appender.setSslAlgorithm(sslAlgorithm); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean).setUseSSL(eq(true)); verify(bean).setSslAlgorithm(eq(sslAlgorithm)); }
@Test public void testCustomHostInformation() throws URISyntaxException { AmqpAppender appender = new AmqpAppender(); String host = "rabbitmq.com"; int port = 5671; String username = "user"; String password = "password"; String virtualHost = "vhost"; URI uri = new URI("amqps://user:password@rabbitmq.com/vhost"); appender.setHost(host); appender.setPassword(password); appender.setPort(port); appender.setUsername(username); appender.setVirtualHost(virtualHost); appender.setUri(uri); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verify(bean).setHost(host); verify(bean).setPort(port); verify(bean).setUsername(username); verify(bean).setPassword(password); verify(bean).setVirtualHost(virtualHost); verify(bean).setUri(uri); }
if (AmqpAppender.this.abbreviator != null && logEvent instanceof LoggingEvent) { ((LoggingEvent) logEvent).setLoggerName(AmqpAppender.this.abbreviator.abbreviate(name)); msgBody = encodeMessage(logEvent); ((LoggingEvent) logEvent).setLoggerName(name); msgBody = encodeMessage(logEvent); Message message = new Message(msgBody, amqpProps); message = postProcessMessageBeforeSend(message, event); rabbitTemplate.send(AmqpAppender.this.exchangeName, routingKey, message); int retries = event.incrementRetries(); if (retries < AmqpAppender.this.maxSenderRetries) { addError("Could not send log message " + logEvent.getMessage() + " after " + AmqpAppender.this.maxSenderRetries + " retries", e);
@Test public void testDefaultConfiguration() { AmqpAppender appender = new AmqpAppender(); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean, never()).setUseSSL(anyBoolean()); }
@Test public void testStartWithInvalidConnectionConfiguration() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); appender.setKeyStore("foo"); appender.start(); assertFalse((boolean) ReflectionTestUtils.getField(appender, "started")); }
@Bean @Scope(BeanDefinition.SCOPE_PROTOTYPE) public SimpleMessageListenerContainer listenerContainer() { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory()); container.setQueues(testQueue()); // container.setMessageListener(testListener(4)); container.setAutoStartup(false); container.setAcknowledgeMode(AcknowledgeMode.AUTO); return container; }
@Bean public Binding testBinding() { return BindingBuilder.bind(testQueue()).to(testExchange()).with(ROUTING_KEY); }
@Bean public Binding encodedBinding() { return BindingBuilder.bind(encodedQueue()).to(testExchange()).with(ENCODED_ROUTING_KEY); }
@Bean public RabbitAdmin rabbitAdmin() { return new RabbitAdmin(connectionFactory()); }
public Object getId() { if (this.message == null || this.getMessageProperties() == null) { throw new IllegalStateException("No MessageProperties received"); } return this.message.getMessageProperties().getMessageId(); }
@Test public void testDefaultSslConfiguration() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean).setUseSSL(eq(true)); verify(bean, never()).setSslAlgorithm(anyString()); }
if (AmqpAppender.this.abbreviator != null && logEvent instanceof LoggingEvent) { ((LoggingEvent) logEvent).setLoggerName(AmqpAppender.this.abbreviator.abbreviate(name)); msgBody = encodeMessage(logEvent); ((LoggingEvent) logEvent).setLoggerName(name); msgBody = encodeMessage(logEvent); Message message = new Message(msgBody, amqpProps); message = postProcessMessageBeforeSend(message, event); rabbitTemplate.send(AmqpAppender.this.exchangeName, routingKey, message); int retries = event.incrementRetries(); if (retries < AmqpAppender.this.maxSenderRetries) { addError("Could not send log message " + logEvent.getMessage() + " after " + AmqpAppender.this.maxSenderRetries + " retries", e);
/** * Create the {@link ConnectionFactory}. * * @return a {@link ConnectionFactory}. */ protected ConnectionFactory createRabbitConnectionFactory() { RabbitConnectionFactoryBean factoryBean = new RabbitConnectionFactoryBean(); configureRabbitConnectionFactory(factoryBean); try { factoryBean.afterPropertiesSet(); return factoryBean.getObject(); } catch (Exception e) { addError("Failed to create customized Rabbit ConnectionFactory.", e); return null; } }
@Override protected void append(ILoggingEvent event) { if (isIncludeCallerData()) { event.getCallerData(); } event.getThreadName(); this.events.add(new Event(event)); }
@Test public void testSslConfigurationWithKeyAndTrustStoreDefaultTypes() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean).setUseSSL(eq(true)); verify(bean).setKeyStoreType("JKS"); verify(bean).setTrustStoreType("JKS"); }
@Test public void testSslConfigurationWithSslPropertiesResource() { AmqpAppender appender = new AmqpAppender(); appender.setUseSsl(true); String path = "ssl.properties"; appender.setSslPropertiesLocation("classpath:" + path); RabbitConnectionFactoryBean bean = mock(RabbitConnectionFactoryBean.class); appender.configureRabbitConnectionFactory(bean); verifyDefaultHostProperties(bean); verify(bean).setUseSSL(eq(true)); verify(bean).setSslPropertiesLocation(eq(new ClassPathResource(path))); verify(bean, never()).setKeyStore(anyString()); verify(bean, never()).setKeyStorePassphrase(anyString()); verify(bean, never()).setKeyStoreType(anyString()); verify(bean, never()).setTrustStore(anyString()); verify(bean, never()).setTrustStorePassphrase(anyString()); verify(bean, never()).setTrustStoreType(anyString()); }