Skip to content

Commit

Permalink
Polishing
Browse files Browse the repository at this point in the history
  • Loading branch information
jhoeller committed Apr 4, 2016
1 parent d554229 commit 26378cd
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 41 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -398,7 +398,7 @@ protected static int calculateShift(int minimumValue, int maximumValue) {
/**
* Various reference types supported by this map.
*/
public static enum ReferenceType {
public enum ReferenceType {

/** Use {@link SoftReference}s */
SOFT,
Expand Down Expand Up @@ -636,7 +636,7 @@ public final int getCount() {
* A reference to an {@link Entry} contained in the map. Implementations are usually
* wrappers around specific Java reference implementations (e.g., {@link SoftReference}).
*/
protected static interface Reference<K, V> {
protected interface Reference<K, V> {

/**
* Returns the referenced entry or {@code null} if the entry is no longer
Expand Down Expand Up @@ -765,7 +765,7 @@ protected T execute(Reference<K, V> reference, Entry<K, V> entry) {
/**
* Various options supported by a {@code Task}.
*/
private static enum TaskOption {
private enum TaskOption {

RESTRUCTURE_BEFORE, RESTRUCTURE_AFTER, SKIP_IF_EMPTY, RESIZE
}
Expand Down Expand Up @@ -912,7 +912,7 @@ public void remove() {
/**
* The types of restructuring that can be performed.
*/
protected static enum Restructure {
protected enum Restructure {

WHEN_NECESSARY, NEVER
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
Expand Down Expand Up @@ -72,11 +71,19 @@ public class JmsListenerEndpointRegistry implements DisposableBean, SmartLifecyc

private boolean contextRefreshed;


@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}

@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if (event.getApplicationContext() == this.applicationContext) {
this.contextRefreshed = true;
}
}


/**
* Return the {@link MessageListenerContainer} with the specified id or
Expand Down Expand Up @@ -107,7 +114,6 @@ public Collection<MessageListenerContainer> getListenerContainers() {
return Collections.unmodifiableCollection(this.listenerContainers.values());
}


/**
* Create a message listener container for the given {@link JmsListenerEndpoint}.
* <p>This create the necessary infrastructure to honor that endpoint
Expand All @@ -129,8 +135,9 @@ public void registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerC
String id = endpoint.getId();
Assert.notNull(id, "Endpoint id must not be null");
synchronized (this.listenerContainers) {
Assert.state(!this.listenerContainers.containsKey(id),
"Another endpoint is already registered with id '" + id + "'");
if (this.listenerContainers.containsKey(id)) {
throw new IllegalStateException("Another endpoint is already registered with id '" + id + "'");
}
MessageListenerContainer container = createListenerContainer(endpoint, factory);
this.listenerContainers.put(id, container);
if (startImmediately) {
Expand Down Expand Up @@ -181,28 +188,6 @@ protected MessageListenerContainer createListenerContainer(JmsListenerEndpoint e
}


@Override
public void destroy() {
for (MessageListenerContainer listenerContainer : getListenerContainers()) {
if (listenerContainer instanceof DisposableBean) {
try {
((DisposableBean) listenerContainer).destroy();
}
catch (Throwable ex) {
logger.warn("Failed to destroy message listener container", ex);
}
}
}
}


@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if (event.getApplicationContext().equals(this.applicationContext)) {
this.contextRefreshed = true;
}
}

// Delegating implementation of SmartLifecycle

@Override
Expand Down Expand Up @@ -259,6 +244,20 @@ private void startIfNecessary(MessageListenerContainer listenerContainer) {
}
}

@Override
public void destroy() {
for (MessageListenerContainer listenerContainer : getListenerContainers()) {
if (listenerContainer instanceof DisposableBean) {
try {
((DisposableBean) listenerContainer).destroy();
}
catch (Throwable ex) {
logger.warn("Failed to destroy message listener container", ex);
}
}
}
}


private static class AggregatingCallback implements Runnable {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ public void composedJmsListeners() {
@SuppressWarnings("resource")
public void unknownFactory() {
thrown.expect(BeanCreationException.class);
thrown.expectMessage("customFactory"); // Not found
thrown.expectMessage("customFactory"); // not found
new AnnotationConfigApplicationContext(EnableJmsSampleConfig.class, CustomBean.class);
}

Expand All @@ -199,11 +199,11 @@ public void lazyComponent() {
context.getBean("jmsListenerContainerFactory", JmsListenerContainerTestFactory.class);
assertEquals(0, defaultFactory.getListenerContainers().size());

context.getBean(LazyBean.class); // trigger lazy resolution
context.getBean(LazyBean.class); // trigger lazy resolution
assertEquals(1, defaultFactory.getListenerContainers().size());
MessageListenerTestContainer container = defaultFactory.getListenerContainers().get(0);
assertTrue("Should have been started " + container, container.isStarted());
context.close(); // Close and stop the listeners
context.close(); // close and stop the listeners
assertTrue("Should have been stopped " + container, container.isStopped());
}

Expand Down Expand Up @@ -339,6 +339,7 @@ public JmsListenerContainerTestFactory defaultFactory() {
}
}


@Configuration
@EnableJms
static class EnableJmsAutoStartupFalseConfig implements JmsListenerConfigurer {
Expand Down Expand Up @@ -378,6 +379,7 @@ public void handle(String msg) {
String concurrency() default "";
}


@JmsListener(destination = "billingQueue")
@Retention(RetentionPolicy.RUNTIME)
private @interface BillingQueueListener {
Expand All @@ -389,6 +391,7 @@ public void handle(String msg) {
String concurrency() default "";
}


@Component
static class ComposedJmsListenersBean {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,12 @@ public class JmsListenerContainerTestFactory implements JmsListenerContainerFact
private final Map<String, MessageListenerTestContainer> listenerContainers =
new LinkedHashMap<>();


public void setAutoStartup(boolean autoStartup) {
this.autoStartup = autoStartup;
}


public List<MessageListenerTestContainer> getListenerContainers() {
return new ArrayList<>(this.listenerContainers.values());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
/**
* @author Stephane Nicoll
*/
public class MessageListenerTestContainer
implements MessageListenerContainer, InitializingBean, DisposableBean {
public class MessageListenerTestContainer implements MessageListenerContainer, InitializingBean, DisposableBean {

private final JmsListenerEndpoint endpoint;

Expand All @@ -41,10 +40,12 @@ public class MessageListenerTestContainer

private boolean destroyInvoked;


MessageListenerTestContainer(JmsListenerEndpoint endpoint) {
this.endpoint = endpoint;
}


public void setAutoStartup(boolean autoStartup) {
this.autoStartup = autoStartup;
}
Expand Down Expand Up @@ -133,8 +134,7 @@ public void afterPropertiesSet() {
@Override
public void destroy() {
if (!stopInvoked) {
throw new IllegalStateException("Stop should have been invoked before " +
"destroy on " + this);
throw new IllegalStateException("Stop should have been invoked before " + "destroy on " + this);
}
destroyInvoked = true;
}
Expand All @@ -150,4 +150,5 @@ public String toString() {
sb.append('}');
return sb.toString();
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -132,7 +132,7 @@ public void setMessageCodec(SockJsMessageCodec messageCodec) {

public SockJsMessageCodec getMessageCodec() {
Assert.state(this.messageCodec != null, "A SockJsMessageCodec is required but not available: " +
"Add Jackson 2 to the classpath, or configure a custom SockJsMessageCodec.");
"Add Jackson to the classpath, or configure a custom SockJsMessageCodec.");
return this.messageCodec;
}

Expand Down

0 comments on commit 26378cd

Please sign in to comment.