Index: src/main/java/org/jgroups/jmx/protocols/BARRIERMBean.java
===================================================================
--- src/main/java/org/jgroups/jmx/protocols/BARRIERMBean.java	(.../trunk/backend/thirdparty/jgroups)	(revision 0)
+++ src/main/java/org/jgroups/jmx/protocols/BARRIERMBean.java	(.../branches/V1_0/backend/thirdparty/jgroups-all)	(revision 10666)
@@ -0,0 +1,28 @@
+package org.jgroups.jmx.protocols;
+
+import org.jgroups.jmx.ProtocolMBean;
+
+/**
+ * JMX interface for BARRIER protocol.
+ * 
+ * @author rpike
+ */
+public interface BARRIERMBean extends ProtocolMBean {
+
+	/** Indicates if barrier is currently closed. */
+	public boolean isClosed();
+	
+	/** Gets configured max_close_time value (ms). */
+	public long getMaxCloseTime();
+	
+	/** Returns true if <tt>barrier_opener_future</tt> is non-null. */
+	public boolean isOpenerScheduled();
+	
+	/**
+	 * Returns the current count of in-flight threads.
+	 * <p>In-flight threads are those currently processing in higher-level protocols.
+	 * 
+	 * @return in-flight threads count
+	 */
+	public int getInFlightThreadsCount();
+}
Index: src/main/java/org/jgroups/jmx/protocols/BARRIER.java
===================================================================
--- src/main/java/org/jgroups/jmx/protocols/BARRIER.java	(.../trunk/backend/thirdparty/jgroups)	(revision 0)
+++ src/main/java/org/jgroups/jmx/protocols/BARRIER.java	(.../branches/V1_0/backend/thirdparty/jgroups-all)	(revision 10666)
@@ -0,0 +1,41 @@
+package org.jgroups.jmx.protocols;
+
+import org.jgroups.jmx.Protocol;
+
+/**
+ * JMX wrapper for BARRIER protocol.
+ * 
+ * @author rpike
+ */
+public class BARRIER extends Protocol implements BARRIERMBean {
+	private org.jgroups.protocols.BARRIER p;
+	
+	public BARRIER() {
+	}
+	
+  public BARRIER(org.jgroups.stack.Protocol p) {
+    super(p);
+    this.p=(org.jgroups.protocols.BARRIER)p;
+  }
+
+	public void attachProtocol(org.jgroups.stack.Protocol p) {
+	    super.attachProtocol(p);
+	    this.p=(org.jgroups.protocols.BARRIER)p;
+	}
+	
+	public int getInFlightThreadsCount() {
+		return p.getNumberOfInFlightThreads();
+	}
+
+	public long getMaxCloseTime() {
+		return p.getMaxCloseTime();
+	}
+
+	public boolean isClosed() {
+		return p.isClosed();
+	}
+
+	public boolean isOpenerScheduled() {
+		return p.isOpenerScheduled();
+	}
+}
