This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.discovery.api-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-api.git
commit 57d974d5635cbd70e97681083064b65abffbf09a Author: Stefan Egli <[email protected]> AuthorDate: Tue Apr 23 09:37:15 2013 +0000 SLING-2827 : javadoc of Type clarified - plus a source code reformat git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/discovery/api@1470861 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/sling/discovery/TopologyEvent.java | 194 +++++++++++++-------- 1 file changed, 119 insertions(+), 75 deletions(-) diff --git a/src/main/java/org/apache/sling/discovery/TopologyEvent.java b/src/main/java/org/apache/sling/discovery/TopologyEvent.java index fb9bcdd..6b515bd 100644 --- a/src/main/java/org/apache/sling/discovery/TopologyEvent.java +++ b/src/main/java/org/apache/sling/discovery/TopologyEvent.java @@ -20,92 +20,136 @@ package org.apache.sling.discovery; /** * A topology event is sent whenever a change in the topology occurs. - * - * This event object might be extended in the future with new event types - * and methods. + * + * This event object might be extended in the future with new event types and + * methods. + * * @see TopologyEventListener */ public class TopologyEvent { - public static enum Type { - TOPOLOGY_INIT, // Inform the service about the initial topology state - TOPOLOGY_CHANGING, // Inform the service about the fact that a state change was detected - // in the cluster topology and that a voting amongst the members about - // a new, valid view has just started. - // Note that implementations might not support this event at all. - TOPOLOGY_CHANGED, // Inform the service about a state change in the cluster topology. - PROPERTIES_CHANGED // one or many properties have been changed on an instance which is part - // of the topology + public static enum Type { + /** + * Inform the service about the initial topology state and is only sent + * once at bind-time. + * <p> + * This event type will be the first one a TopologyEventListener + * receives. + */ + TOPOLOGY_INIT, + + /** + * Inform the service about the fact that a state change was detected in + * the topology/cluster and that a voting amongst the members about a + * new, valid topology/cluster view has just started. + * <p> + * An implementation must always send a TOPOLOGY_CHANGING before a + * TOPOLOGY_CHANGED. + */ + TOPOLOGY_CHANGING, + + /** + * Inform the service about a state change in the topology. + * <p> + * A state change includes: + * <ul> + * <li>A joining or leaving instance</li> + * <li>A restart of an instance - or more precisely: when the + * corresponding implementation bundle is deactivated/activated</li> + * <li>A cluster structure changed: either its members or the cluster + * view id. The cluster view id changes when an instance joins, leaves + * or was restarted (the bundle deactivated/activated)</li> + * </ul> + * <p> + * Note that tha TOPOLOGY_CHANGED can also include changes in the + * properties! + */ + TOPOLOGY_CHANGED, + + /** + * One or many properties have been changed on an instance which is part + * of the topology. + * <p> + * This event is sent when otherwise the topology remains identical. + */ + PROPERTIES_CHANGED + } - private final Type type; - private final TopologyView oldView; - private final TopologyView newView; + private final Type type; + private final TopologyView oldView; + private final TopologyView newView; - public TopologyEvent(final Type type, final TopologyView oldView, final TopologyView newView) { - if (type==null) { - throw new IllegalArgumentException("type must not be null"); - } + public TopologyEvent(final Type type, final TopologyView oldView, + final TopologyView newView) { + if (type == null) { + throw new IllegalArgumentException("type must not be null"); + } - if (type==Type.TOPOLOGY_INIT) { - // then oldView is null - if (oldView!=null) { - throw new IllegalArgumentException("oldView must be null"); - } - // and newView must be not null - if (newView==null) { - throw new IllegalArgumentException("newView must not be null"); - } - } else if (type==Type.TOPOLOGY_CHANGING) { - // then newView is null - if (newView!=null) { - throw new IllegalArgumentException("newView must be null"); - } - // and oldView must not be null - if (oldView==null) { - throw new IllegalArgumentException("oldView must not be null"); - } - } else { - // in all other cases both oldView and newView must not be null - if (oldView==null) { - throw new IllegalArgumentException("oldView must not be null"); - } - if (newView==null) { - throw new IllegalArgumentException("newView must not be null"); - } - } - this.type = type; - this.oldView = oldView; - this.newView = newView; - } + if (type == Type.TOPOLOGY_INIT) { + // then oldView is null + if (oldView != null) { + throw new IllegalArgumentException("oldView must be null"); + } + // and newView must be not null + if (newView == null) { + throw new IllegalArgumentException("newView must not be null"); + } + } else if (type == Type.TOPOLOGY_CHANGING) { + // then newView is null + if (newView != null) { + throw new IllegalArgumentException("newView must be null"); + } + // and oldView must not be null + if (oldView == null) { + throw new IllegalArgumentException("oldView must not be null"); + } + } else { + // in all other cases both oldView and newView must not be null + if (oldView == null) { + throw new IllegalArgumentException("oldView must not be null"); + } + if (newView == null) { + throw new IllegalArgumentException("newView must not be null"); + } + } + this.type = type; + this.oldView = oldView; + this.newView = newView; + } - /** - * Returns the type of this event - * @return the type of this event - */ - public Type getType() { - return type; - } + /** + * Returns the type of this event + * + * @return the type of this event + */ + public Type getType() { + return type; + } - /** - * Returns the view which was valid up until now. - * <p> - * This is null in case of <code>TOPOLOGY_INIT</code> - * @return the view which was valid up until now, or null in case of a fresh instance start - */ - public TopologyView getOldView() { - return oldView; - } + /** + * Returns the view which was valid up until now. + * <p> + * This is null in case of <code>TOPOLOGY_INIT</code> + * + * @return the view which was valid up until now, or null in case of a fresh + * instance start + */ + public TopologyView getOldView() { + return oldView; + } - /** - * Returns the view which is currently (i.e. newly) valid. - * <p> - * This is null in case of <code>TOPOLOGY_CHANGING</code> - * @return the view which is currently valid, or null in case of <code>TOPOLOGY_CHANGING</code> - */ - public TopologyView getNewView() { - return newView; - } + /** + * Returns the view which is currently (i.e. newly) valid. + * <p> + * This is null in case of <code>TOPOLOGY_CHANGING</code> + * + * @return the view which is currently valid, or null in case of + * <code>TOPOLOGY_CHANGING</code> + */ + public TopologyView getNewView() { + return newView; + } @Override public String toString() { -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
