diff --git a/systests/pom.xml b/systests/pom.xml
index 8178bf4..7d8cdc1 100644
--- a/systests/pom.xml
+++ b/systests/pom.xml
@@ -130,13 +130,30 @@
     </build>
 
     <profiles>
+
+        <!--
+            Profile 'broker-j' is used to run system tests against Qpid Broker-J.
+
+            java8 is required to run Qpid Broker-J.
+            When tests need to be run with java 7, the path to java 8 executable can be set
+            using JVM property 'qpid.systest.java8.executable'.
+            For example, -Dqpid.systest.java8.executable=/usr/java/jdk1.8.0_121/bin/java
+
+            By default AMQP 0-10 is tested.
+            The used AMQP protocol can be overridden by setting JVM property 'qpid.amqp.version'.
+            For example, -Dqpid.amqp.version=0-9-1 can be set to test 0-9-1.
+
+            Examples of running tests:
+             mvn test -Pbroker-j
+             mvn test -Pbroker-j -Dqpid.amqp.version=0-9-1 -Dqpid.systest.java8.executable=/usr/java/jdk1.8.0_121/bin/java
+        -->
         <profile>
             <id>broker-j</id>
 
             <properties>
                 <qpid-broker-j-version>7.0.0</qpid-broker-j-version>
                 <qpid.systest.broker_admin>org.apache.qpid.systest.core.brokerj.SpawnQpidBrokerAdmin</qpid.systest.broker_admin>
-                <qpid.systest.java8.executable>/usr/bin/java</qpid.systest.java8.executable>
+                <qpid.systest.java8.executable>java</qpid.systest.java8.executable>
                 <qpid.systest.virtualhost.blueprint>{"type":"BDB","globalAddressDomains":"[]"}</qpid.systest.virtualhost.blueprint>
                 <qpid.systest.brokerj.dependencies>org.apache.qpid:qpid-broker:${qpid-broker-j-version},org.apache.qpid:qpid-broker-core:${qpid-broker-j-version},org.apache.qpid:qpid-bdbstore:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-amqp-0-8-protocol:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-amqp-0-10-protocol:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-amqp-msg-conv-0-8-to-0-10:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-management-amqp:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-access-control:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-derby-store:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-jdbc-provider-bone:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-jdbc-store:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-logging-logback:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-management-amqp:${qpid-broker-j-version},org.apache.qpid:qpid-broker-plugins-memory-store:${qpid-broker-j-version},org.apache.qpid:qpid-bdbstore:${qpid-broker-j-version}</qpid.systest.brokerj.dependencies>
             </properties>
@@ -159,28 +176,6 @@
                             </systemPropertyVariables>
                         </configuration>
                     </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-enforcer-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>enforce-java8-check</id>
-                                <goals>
-                                    <goal>enforce</goal>
-                                </goals>
-                                <configuration>
-                                    <rules>
-                                        <requireFilesExist>
-                                            <files>
-                                                <file>${qpid.systest.java8.executable}</file>
-                                            </files>
-                                        </requireFilesExist>
-                                    </rules>
-                                    <fail>true</fail>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
                 </plugins>
             </build>
         </profile>
diff --git a/systests/src/test/java/org/apache/qpid/systest/core/brokerj/SpawnQpidBrokerAdminTest.java b/systests/src/test/java/org/apache/qpid/systest/core/brokerj/SpawnQpidBrokerAdminTest.java
index 47a7bfa..c4140a2 100644
--- a/systests/src/test/java/org/apache/qpid/systest/core/brokerj/SpawnQpidBrokerAdminTest.java
+++ b/systests/src/test/java/org/apache/qpid/systest/core/brokerj/SpawnQpidBrokerAdminTest.java
@@ -268,10 +268,6 @@
 
     private void assumeBrokerCanBeStarted()
     {
-        assumeThat(String.format("Java 8 executable property (%s) is not set", SYSTEST_PROPERTY_JAVA8_EXECUTABLE),
-                   System.getProperty(SYSTEST_PROPERTY_JAVA8_EXECUTABLE), is(notNullValue()));
-        assumeThat("Java 8 executable does not exist",
-                   new File(System.getProperty(SYSTEST_PROPERTY_JAVA8_EXECUTABLE)).exists(), is(equalTo(true)));
         assumeThat(String.format("Broker-J classpath property (%s) is not set", SYSTEST_PROPERTY_BUILD_CLASSPATH_FILE),
                    System.getProperty(SYSTEST_PROPERTY_BUILD_CLASSPATH_FILE), is(notNullValue()));
         assumeThat(String.format("Broker dependencies property (%s) is not set", SYSTEST_PROPERTY_BROKERJ_DEPENDECIES),
