diff --git a/org.eclipse.swtbot.swt.finder/.settings/.api_filters b/org.eclipse.swtbot.swt.finder/.settings/.api_filters
new file mode 100644
index 0000000..c2cfba5
--- /dev/null
+++ b/org.eclipse.swtbot.swt.finder/.settings/.api_filters
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.swtbot.swt.finder" version="2">
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton">
+        <filter comment="This is the only really breaking change" id="336695337">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton"/>
+                <message_argument value="click(int)"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarDropDownButton">
+        <filter comment="This is the only really breaking change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarDropDownButton"/>
+                <message_argument value="click()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarPushButton">
+        <filter comment="This is the only really breaking change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarPushButton"/>
+                <message_argument value="click()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarRadioButton">
+        <filter comment="This is the only really breaking change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarRadioButton"/>
+                <message_argument value="click()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarSeparatorButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarSeparatorButton">
+        <filter comment="This is the only really breaking change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarSeparatorButton"/>
+                <message_argument value="click()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButton.java" type="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarToggleButton">
+        <filter comment="This is the only really breaking change" id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarToggleButton"/>
+                <message_argument value="click()"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarButton.java
index 97ddffd..0a03d08 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarButton.java
@@ -66,6 +66,9 @@
 		sendNotifications(0);
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	protected void sendNotifications(int stateMask) {
 		notify(SWT.MouseEnter);
 		notify(SWT.MouseMove);
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButton.java
index 8ff5527..82782ce 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButton.java
@@ -132,6 +132,9 @@
 		}
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	@Override
 	public SWTBotToolbarDropDownButton click(int stateMask) {
 		log.debug(MessageFormat.format("Clicking on {0}" + (stateMask != 0 ? " with stateMask=0x{1}" : ""), this, Integer.toHexString(stateMask))); //$NON-NLS-1$
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButton.java
index b61f381..b1a9ae2 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButton.java
@@ -51,6 +51,9 @@
 		Assert.isTrue(SWTUtils.hasStyle(w, SWT.PUSH), "Expecting a push button."); //$NON-NLS-1$
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	@Override
 	public SWTBotToolbarPushButton click(int stateMask) {
 		log.debug(MessageFormat.format("Clicking on {0}" + (stateMask != 0 ? " with stateMask=0x{1}" : ""), this, Integer.toHexString(stateMask))); //$NON-NLS-1$
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButton.java
index a9e39e5..2d4f681 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButton.java
@@ -72,6 +72,9 @@
 		return this;
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	@Override
 	public SWTBotToolbarRadioButton click(int stateMask) {
 		log.debug(MessageFormat.format("Clicking on {0}" + (stateMask != 0 ? " with stateMask=0x{1}" : ""), this, Integer.toHexString(stateMask))); //$NON-NLS-1$
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarSeparatorButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarSeparatorButton.java
index 1584477..b3e5474 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarSeparatorButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarSeparatorButton.java
@@ -56,6 +56,9 @@
 
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	@Override
 	public SWTBotToolbarSeparatorButton click(int stateMask) {
 		log.debug(MessageFormat.format("Clicking on {0}" + (stateMask != 0 ? " with stateMask=0x{1}" : ""), this, Integer.toHexString(stateMask))); //$NON-NLS-1$
diff --git a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButton.java b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButton.java
index 36c05ed..170b4e3 100644
--- a/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButton.java
+++ b/org.eclipse.swtbot.swt.finder/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButton.java
@@ -70,6 +70,9 @@
 		return this;
 	}
 
+	/**
+	 * @since 2.3
+	 */
 	@Override
 	public SWTBotToolbarToggleButton click(int stateMask) {
 		log.debug(MessageFormat.format("Clicking on {0}" + (stateMask != 0 ? " with stateMask=0x{1}" : ""), this, Integer.toHexString(stateMask))); //$NON-NLS-1$
