You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/08/23 15:36:48 UTC
[3/4] qpid-broker-j git commit: QPID-7896: [Java System Tests] Create
system tests testing end-to-end message conversion
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
new file mode 100644
index 0000000..a15b00b
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+
+public class Booter
+{
+ private static final String FALLBACK_LOCAL_REPO_URL = Stream.of(System.getProperty("user.home"),
+ ".m2", "repository")
+ .collect(Collectors.joining(File.pathSeparator));
+ private static final String REMOTE_REPO_URL = System.getProperty(
+ "qpid.systests.end_to_end_conversion.remoteRepository",
+ "https://repo.maven.apache.org/maven2/");
+ private static final String LOCAL_REPO =
+ System.getProperty("qpid.systests.end_to_end_conversion.localRepository", FALLBACK_LOCAL_REPO_URL);
+
+ public static RepositorySystem newRepositorySystem()
+ {
+ return ManualRepositorySystemFactory.newRepositorySystem();
+ }
+
+ public static DefaultRepositorySystemSession newRepositorySystemSession(RepositorySystem system)
+ {
+ DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
+
+ LocalRepository localRepo = new LocalRepository("target/local-repo");
+ session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
+
+ session.setTransferListener(new ConsoleTransferListener());
+ session.setRepositoryListener(new ConsoleRepositoryListener());
+
+ // uncomment to generate dirty trees
+ // session.setDependencyGraphTransformer( null );
+
+ return session;
+ }
+
+ public static List<RemoteRepository> newRepositories()
+ {
+ return Arrays.asList(newLocalRepository(), newCentralRepository());
+ }
+
+ private static RemoteRepository newCentralRepository()
+ {
+ return new RemoteRepository.Builder("central", "default", REMOTE_REPO_URL).build();
+ }
+
+ private static RemoteRepository newLocalRepository()
+ {
+ final URL localRepoUrl = toUrl(LOCAL_REPO);
+ return new RemoteRepository.Builder("local", "default", localRepoUrl.toString()).build();
+ }
+
+ private static URL toUrl(final String localRepo)
+ {
+ try
+ {
+ return new URL(localRepo);
+ }
+ catch (MalformedURLException e)
+ {
+ try
+ {
+ return new File(localRepo).toURI().toURL();
+ }
+ catch (MalformedURLException e1)
+ {
+ throw new RuntimeException(String.format("Failed to convert '%s' into a URL", localRepo), e);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
new file mode 100644
index 0000000..78c8736
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.collection.CollectRequest;
+import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.DependencyFilter;
+import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.resolution.DependencyRequest;
+import org.eclipse.aether.resolution.DependencyResolutionException;
+import org.eclipse.aether.util.artifact.JavaScopes;
+import org.eclipse.aether.util.filter.DependencyFilterUtils;
+
+public class ClasspathQuery
+{
+ private static final LoadingCache<Collection<String>, List<File>> _classpathCache;
+ private static final RepositorySystem _mavenRepositorySystem;
+ private static final RepositorySystemSession _mavenRepositorySession;
+ static
+ {
+ _mavenRepositorySystem = Booter.newRepositorySystem();
+ _mavenRepositorySession = Booter.newRepositorySystemSession(_mavenRepositorySystem);
+ _classpathCache = CacheBuilder.newBuilder()
+ .maximumSize(8)
+ .recordStats()
+ .build(new CacheLoader<Collection<String>, List<File>>()
+ {
+ @Override
+ public List<File> load(final Collection<String> key) throws Exception
+ {
+ return doBuildClassPath(key);
+ }
+ });
+ }
+ private final Class<?> _clientClass;
+ private final Collection<String> _clientGavs;
+
+
+ public ClasspathQuery(final Class<?> clientClass, final Collection<String> gavs)
+ {
+ _clientClass = clientClass;
+ _clientGavs = gavs;
+ }
+
+ public Class<?> getClientClass()
+ {
+ return _clientClass;
+ }
+
+ public Collection<String> getClientGavs()
+ {
+ return _clientGavs;
+ }
+
+ public String getClasspath()
+ {
+ return buildClassPath(_clientClass, _clientGavs);
+ }
+
+ public static String getCacheStats()
+ {
+ return _classpathCache.stats().toString();
+ }
+
+ private static List<File> doBuildClassPath(final Collection<String> gavs)
+ {
+ return new ArrayList<>(getJarFiles(gavs));
+ }
+
+ private static Set<File> getJarFiles(final Collection<String> gavs)
+ {
+ Set<File> jars = new HashSet<>();
+
+ for (final String gav : gavs)
+ {
+ Artifact artifact = new DefaultArtifact(gav);
+
+ DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE);
+
+ CollectRequest collectRequest = new CollectRequest();
+ collectRequest.setRoot(new Dependency(artifact, JavaScopes.COMPILE));
+ collectRequest.setRepositories(Booter.newRepositories());
+
+ DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFlter);
+
+ List<ArtifactResult> artifactResults = null;
+ try
+ {
+ artifactResults = _mavenRepositorySystem.resolveDependencies(_mavenRepositorySession, dependencyRequest)
+ .getArtifactResults();
+ }
+ catch (DependencyResolutionException e)
+ {
+ throw new RuntimeException(String.format("Error while dependency resolution for '%s'", gav), e);
+ }
+
+ if (artifactResults == null)
+ {
+ throw new RuntimeException(String.format("Could not resolve dependency for '%s'", gav));
+ }
+
+ for (ArtifactResult artifactResult : artifactResults)
+ {
+ System.out.println(artifactResult.getArtifact() + " resolved to "
+ + artifactResult.getArtifact().getFile());
+ }
+
+ jars.addAll(artifactResults.stream()
+ .map(result -> result.getArtifact().getFile())
+ .collect(Collectors.toSet()));
+ }
+ return jars;
+ }
+
+ private String buildClassPath(final Class<?> clientClazz, final Collection<String> gavs)
+ {
+ List<File> classpathElements = _classpathCache.getUnchecked(gavs);
+ classpathElements.add(getLocalClasspathElement(clientClazz));
+
+ final String collect = classpathElements.stream()
+ .map(File::toString)
+ .collect(Collectors.joining(System.getProperty("path.separator")));
+ return collect;
+ }
+
+ private File getLocalClasspathElement(final Class<?> clazz)
+ {
+ int packageDepth = getPackageDepth(clazz);
+ final URL resource = clazz.getResource("/" + clazz.getName().replace(".", "/") + ".class");
+ // TODO handle JAR case
+ try
+ {
+ Path path = new File(resource.toURI()).toPath();
+ for (int i = 0; i < packageDepth + 1; ++i)
+ {
+ path = path.getParent();
+ }
+
+ return path.toFile();
+ }
+ catch (URISyntaxException e)
+ {
+ throw new RuntimeException(String.format("Failed to get classpath element for %s", clazz), e);
+ }
+ }
+
+ private int getPackageDepth(Class clazz)
+ {
+ final String publisherClassName = clazz.getName();
+ int lastIndex = 0;
+ int count = 0;
+
+ while (lastIndex != -1)
+ {
+ lastIndex = publisherClassName.indexOf(".", lastIndex);
+
+ if (lastIndex != -1)
+ {
+ count++;
+ lastIndex += 1;
+ }
+ }
+ return count;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
new file mode 100644
index 0000000..9725a41
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
+
+import java.io.PrintStream;
+
+import org.eclipse.aether.AbstractRepositoryListener;
+import org.eclipse.aether.RepositoryEvent;
+
+public class ConsoleRepositoryListener extends AbstractRepositoryListener
+{
+
+ private PrintStream _out;
+
+ public ConsoleRepositoryListener()
+ {
+ this(null);
+ }
+
+ public ConsoleRepositoryListener(PrintStream out)
+ {
+ this._out = (out != null) ? out : System.out;
+ }
+
+ public void artifactDeployed(RepositoryEvent event)
+ {
+ _out.println("Deployed " + event.getArtifact() + " to " + event.getRepository());
+ }
+
+ public void artifactDeploying(RepositoryEvent event)
+ {
+ _out.println("Deploying " + event.getArtifact() + " to " + event.getRepository());
+ }
+
+ public void artifactDescriptorInvalid(RepositoryEvent event)
+ {
+ _out.println("Invalid artifact descriptor for " + event.getArtifact() + ": "
+ + event.getException().getMessage());
+ }
+
+ public void artifactDescriptorMissing(RepositoryEvent event)
+ {
+ _out.println("Missing artifact descriptor for " + event.getArtifact());
+ }
+
+ public void artifactInstalled(RepositoryEvent event)
+ {
+ _out.println("Installed " + event.getArtifact() + " to " + event.getFile());
+ }
+
+ public void artifactInstalling(RepositoryEvent event)
+ {
+ _out.println("Installing " + event.getArtifact() + " to " + event.getFile());
+ }
+
+ public void artifactResolved(RepositoryEvent event)
+ {
+ _out.println("Resolved artifact " + event.getArtifact() + " from " + event.getRepository());
+ }
+
+ public void artifactDownloading(RepositoryEvent event)
+ {
+ _out.println("Downloading artifact " + event.getArtifact() + " from " + event.getRepository());
+ }
+
+ public void artifactDownloaded(RepositoryEvent event)
+ {
+ _out.println("Downloaded artifact " + event.getArtifact() + " from " + event.getRepository());
+ }
+
+ public void artifactResolving(RepositoryEvent event)
+ {
+ _out.println("Resolving artifact " + event.getArtifact());
+ }
+
+ public void metadataDeployed(RepositoryEvent event)
+ {
+ _out.println("Deployed " + event.getMetadata() + " to " + event.getRepository());
+ }
+
+ public void metadataDeploying(RepositoryEvent event)
+ {
+ _out.println("Deploying " + event.getMetadata() + " to " + event.getRepository());
+ }
+
+ public void metadataInstalled(RepositoryEvent event)
+ {
+ _out.println("Installed " + event.getMetadata() + " to " + event.getFile());
+ }
+
+ public void metadataInstalling(RepositoryEvent event)
+ {
+ _out.println("Installing " + event.getMetadata() + " to " + event.getFile());
+ }
+
+ public void metadataInvalid(RepositoryEvent event)
+ {
+ _out.println("Invalid metadata " + event.getMetadata());
+ }
+
+ public void metadataResolved(RepositoryEvent event)
+ {
+ _out.println("Resolved metadata " + event.getMetadata() + " from " + event.getRepository());
+ }
+
+ public void metadataResolving(RepositoryEvent event)
+ {
+ _out.println("Resolving metadata " + event.getMetadata() + " from " + event.getRepository());
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
new file mode 100644
index 0000000..765974b
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
@@ -0,0 +1,175 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
+
+import java.io.PrintStream;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.eclipse.aether.transfer.AbstractTransferListener;
+import org.eclipse.aether.transfer.MetadataNotFoundException;
+import org.eclipse.aether.transfer.TransferEvent;
+import org.eclipse.aether.transfer.TransferResource;
+
+public class ConsoleTransferListener extends AbstractTransferListener
+{
+
+ private PrintStream _out;
+
+ private Map<TransferResource, Long> _downloads = new ConcurrentHashMap<>();
+
+ private int _lastLength;
+
+ public ConsoleTransferListener()
+ {
+ this(null);
+ }
+
+ public ConsoleTransferListener(PrintStream out)
+ {
+ this._out = (out != null) ? out : System.out;
+ }
+
+ @Override
+ public void transferInitiated(TransferEvent event)
+ {
+ String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
+
+ _out.println(message + ": " + event.getResource().getRepositoryUrl() + event.getResource()
+ .getResourceName());
+ }
+
+ @Override
+ public void transferProgressed(TransferEvent event)
+ {
+ TransferResource resource = event.getResource();
+ _downloads.put(resource, Long.valueOf(event.getTransferredBytes()));
+
+ StringBuilder buffer = new StringBuilder(64);
+
+ for (Map.Entry<TransferResource, Long> entry : _downloads.entrySet())
+ {
+ long total = entry.getKey().getContentLength();
+ long complete = entry.getValue().longValue();
+
+ buffer.append(getStatus(complete, total)).append(" ");
+ }
+
+ int pad = _lastLength - buffer.length();
+ _lastLength = buffer.length();
+ pad(buffer, pad);
+ buffer.append('\r');
+
+ _out.print(buffer);
+ }
+
+ private String getStatus(long complete, long total)
+ {
+ if (total >= 1024)
+ {
+ return toKB(complete) + "/" + toKB(total) + " KB ";
+ }
+ else if (total >= 0)
+ {
+ return complete + "/" + total + " B ";
+ }
+ else if (complete >= 1024)
+ {
+ return toKB(complete) + " KB ";
+ }
+ else
+ {
+ return complete + " B ";
+ }
+ }
+
+ private void pad(StringBuilder buffer, int spaces)
+ {
+ String block = " ";
+ while (spaces > 0)
+ {
+ int n = Math.min(spaces, block.length());
+ buffer.append(block, 0, n);
+ spaces -= n;
+ }
+ }
+
+ @Override
+ public void transferSucceeded(TransferEvent event)
+ {
+ transferCompleted(event);
+
+ TransferResource resource = event.getResource();
+ long contentLength = event.getTransferredBytes();
+ if (contentLength >= 0)
+ {
+ String type = (event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded");
+ String len = contentLength >= 1024 ? toKB(contentLength) + " KB" : contentLength + " B";
+
+ String throughput = "";
+ long duration = System.currentTimeMillis() - resource.getTransferStartTime();
+ if (duration > 0)
+ {
+ long bytes = contentLength - resource.getResumeOffset();
+ DecimalFormat format = new DecimalFormat("0.0", new DecimalFormatSymbols(Locale.ENGLISH));
+ double kbPerSec = (bytes / 1024.0) / (duration / 1000.0);
+ throughput = " at " + format.format(kbPerSec) + " KB/sec";
+ }
+
+ _out.println(type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len
+ + throughput + ")");
+ }
+ }
+
+ @Override
+ public void transferFailed(TransferEvent event)
+ {
+ transferCompleted(event);
+
+ if (!(event.getException() instanceof MetadataNotFoundException))
+ {
+ event.getException().printStackTrace(_out);
+ }
+ }
+
+ private void transferCompleted(TransferEvent event)
+ {
+ _downloads.remove(event.getResource());
+
+ StringBuilder buffer = new StringBuilder(64);
+ pad(buffer, _lastLength);
+ buffer.append('\r');
+ _out.print(buffer);
+ }
+
+ public void transferCorrupted(TransferEvent event)
+ {
+ event.getException().printStackTrace(_out);
+ }
+
+ protected long toKB(long bytes)
+ {
+ return (bytes + 1023) / 1024;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
new file mode 100644
index 0000000..a488fac
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
+
+import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
+import org.eclipse.aether.impl.DefaultServiceLocator;
+import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
+import org.eclipse.aether.spi.connector.transport.TransporterFactory;
+import org.eclipse.aether.transport.file.FileTransporterFactory;
+import org.eclipse.aether.transport.http.HttpTransporterFactory;
+
+public class ManualRepositorySystemFactory
+{
+
+ public static RepositorySystem newRepositorySystem()
+ {
+ /*
+ * Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the
+ * prepopulated DefaultServiceLocator, we only need to register the repository connector and transporter
+ * factories.
+ */
+ DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
+ locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
+ locator.addService(TransporterFactory.class, FileTransporterFactory.class);
+ locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
+
+ locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler()
+ {
+ @Override
+ public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception)
+ {
+ exception.printStackTrace();
+ }
+ });
+
+ return locator.getService(RepositorySystem.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json b/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
new file mode 100644
index 0000000..c9fe08e
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/resources/config-end-to-end-conversion-tests.json
@@ -0,0 +1,47 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+{
+ "name" : "${broker.name}",
+ "modelVersion" : "7.0",
+ "authenticationproviders" : [ {
+ "name" : "anon",
+ "type" : "Anonymous"
+ } ],
+ "ports" : [ {
+ "name" : "ANONYMOUS_AMQP",
+ "type" : "AMQP",
+ "authenticationProvider" : "anon",
+ "port" : "0",
+ "virtualhostaliases" : [ {
+ "name" : "defaultAlias",
+ "type" : "defaultAlias",
+ "durable" : true
+ }, {
+ "name": "patternMatchingAlias",
+ "type": "patternMatchingAlias"
+ }, {
+ "name" : "nameAlias",
+ "type" : "nameAlias",
+ "durable" : true
+ } ]
+ } ],
+ "virtualhostnodes" : []
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/main/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/main/resources/logback-test.xml b/systests/end-to-end-conversion-tests/src/main/resources/logback-test.xml
new file mode 100644
index 0000000..fb5a387
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/main/resources/logback-test.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ ~
+ -->
+<configuration debug="true">
+
+ <contextName>qpid-systests-end-to-end-conversion</contextName>
+
+ <!-- Logging configuration used for this module. This is named
+ logback-test.xml in order that it is found in preference to the logback.xml
+ found in qpid-test-utils (which is used for other, non-systests, modules). -->
+
+ <appender name="RootSiftAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
+ <discriminator class="org.apache.qpid.test.utils.LogbackPropertyValueDiscriminator">
+ <Key>classQualifiedTestName</Key>
+ <DefaultValue>testrun</DefaultValue>
+ </discriminator>
+ <sift>
+ <appender name="FILE-${classQualifiedTestName}" class="ch.qos.logback.core.FileAppender">
+ <File>${test.output.dir}${file.separator}TEST-${classQualifiedTestName}-${qpid.systests.end_to_end_conversion.executionId}.txt</File>
+ <Append>False</Append>
+ <encoder>
+ <pattern>%date %-5level [%thread] %logger{10} %msg%n</pattern>
+ </encoder>
+ </appender>
+ </sift>
+ </appender>
+ <root level="debug">
+ <appender-ref ref="RootSiftAppender"/>
+ </root>
+ <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
+</configuration>
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
----------------------------------------------------------------------
diff --git a/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
new file mode 100644
index 0000000..79812f0
--- /dev/null
+++ b/systests/end-to-end-conversion-tests/src/test/java/org/apache/qpid/systests/end_to_end_conversion/SimpleConversionTest.java
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.qpid.systests.end_to_end_conversion;
+
+import static org.junit.Assert.fail;
+
+import java.util.HashMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import org.apache.qpid.systests.end_to_end_conversion.client.VerificationException;
+
+public class SimpleConversionTest extends EndToEndConversionTestBase
+{
+ private static final long TEST_TIMEOUT = 30000L;
+
+ @Test
+ public void textMessage() throws Exception
+ {
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setMessageType(JmsInstructions.MessageDescription.MessageType.TEXT_MESSAGE);
+ messageDescription.setContent("foobar");
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
+ public void bytesMessage() throws Exception
+ {
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setMessageType(JmsInstructions.MessageDescription.MessageType.BYTES_MESSAGE);
+ messageDescription.setContent(new byte[]{0x00, (byte) 0xFF, (byte) 0xc3});
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
+ public void mapMessage() throws Exception
+ {
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setMessageType(JmsInstructions.MessageDescription.MessageType.MAP_MESSAGE);
+ HashMap<String, Object> content = new HashMap<>();
+ content.put("int", 42);
+ content.put("boolean", true);
+ content.put("string", "testString");
+ messageDescription.setContent(content);
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
+ public void correlationId() throws Exception
+ {
+ final String correlationId = "myCorrelationId";
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setHeader(JmsInstructions.MessageDescription.MessageHeader.CORRELATION_ID, correlationId);
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Ignore("QPID-7897")
+ @Test
+ public void correlationIdAsBytes() throws Exception
+ {
+ final byte[] correlationId = new byte[]{(byte) 0xFF, 0x00, (byte) 0xC3};
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setHeader(JmsInstructions.MessageDescription.MessageHeader.CORRELATION_ID, correlationId);
+
+ performSimpleTest(messageDescription);
+ }
+
+ @Test
+ public void property() throws Exception
+ {
+ final JmsInstructions.MessageDescription messageDescription = new JmsInstructions.MessageDescription();
+ messageDescription.setProperty("intProperty", 42);
+ messageDescription.setProperty("stringProperty", "foobar");
+ messageDescription.setProperty("booleanProperty", true);
+ messageDescription.setProperty("doubleProperty", 37.5);
+
+ performSimpleTest(messageDescription);
+ }
+
+ public void performSimpleTest(final JmsInstructions.MessageDescription messageDescription) throws Exception
+ {
+ final ListenableFuture<?> publisherFuture =
+ runPublisher(JmsInstructionBuilder.publishSingleMessage(messageDescription));
+ final ListenableFuture<?> subscriberFuture =
+ runSubscriber(JmsInstructionBuilder.receiveSingleMessage(messageDescription));
+ try
+ {
+ Futures.allAsList(publisherFuture, subscriberFuture).get(TEST_TIMEOUT, TimeUnit.MILLISECONDS);
+ }
+ catch (ExecutionException e)
+ {
+ final Throwable cause = e.getCause();
+ if (cause instanceof VerificationException)
+ {
+ throw new AssertionError("Client failed verification", cause);
+ }
+ else if (cause instanceof Exception)
+ {
+ throw ((Exception) cause);
+ }
+ else
+ {
+ throw e;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/pom.xml
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/pom.xml b/systests/protocol-tests-amqp-1-0/pom.xml
index d90f967..a3108b5 100644
--- a/systests/protocol-tests-amqp-1-0/pom.xml
+++ b/systests/protocol-tests-amqp-1-0/pom.xml
@@ -55,6 +55,11 @@
<dependency>
<groupId>org.apache.qpid</groupId>
+ <artifactId>qpid-systests-utils</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.qpid</groupId>
<artifactId>qpid-broker-plugins-logging-logback</artifactId>
</dependency>
@@ -129,4 +134,18 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <qpid.initialConfigurationLocation>classpath:config-protocol-tests.json</qpid.initialConfigurationLocation>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdmin.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdmin.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdmin.java
deleted file mode 100644
index 303cc28..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdmin.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import java.lang.reflect.Method;
-import java.net.InetSocketAddress;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-import org.apache.qpid.server.plugin.Pluggable;
-
-public interface BrokerAdmin extends Pluggable
-{
- String TEST_QUEUE_NAME = "testQueue";
- Long RESTART_TIMEOUT = Long.getLong("brokerAdmin.restart_timeout", 10000);
-
- void beforeTestClass(final Class testClass);
- void beforeTestMethod(final Class testClass, final Method method);
- void afterTestMethod(final Class testClass, final Method method);
- void afterTestClass(final Class testClass);
-
- InetSocketAddress getBrokerAddress(PortType portType);
-
- void createQueue(String queueName);
- void deleteQueue(String queueName);
- void putMessageOnQueue(String queueName, String... messages);
- int getQueueDepthMessages(String testQueueName);
-
- boolean supportsRestart();
- ListenableFuture<Void> restart();
-
- boolean isSASLSupported();
- boolean isSASLMechanismSupported(String mechanismName);
- boolean isWebSocketSupported();
- boolean isQueueDepthSupported();
-
- String getValidUsername();
- String getValidPassword();
-
-
-
- enum PortType
- {
- ANONYMOUS_AMQP,
- ANONYMOUS_AMQPWS,
- AMQP
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdminFactory.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdminFactory.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdminFactory.java
deleted file mode 100644
index 6ecc02f..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/BrokerAdminFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import java.util.Map;
-
-import org.apache.qpid.server.plugin.QpidServiceLoader;
-
-public class BrokerAdminFactory
-{
- BrokerAdmin createInstance(String type)
- {
- Map<String, BrokerAdmin> adminFacades = new QpidServiceLoader().getInstancesByType(BrokerAdmin.class);
- BrokerAdmin brokerAdmin = adminFacades.get(type);
- if (brokerAdmin == null)
- {
- throw new RuntimeException(String.format("Could not find BrokerAdmin implementation of type '%s'", type));
- }
- return brokerAdmin;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/EmbeddedBrokerPerClassAdminImpl.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/EmbeddedBrokerPerClassAdminImpl.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/EmbeddedBrokerPerClassAdminImpl.java
deleted file mode 100644
index e4dd859..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/EmbeddedBrokerPerClassAdminImpl.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.net.InetSocketAddress;
-import java.nio.file.Files;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import ch.qos.logback.classic.LoggerContext;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.qpid.server.SystemLauncher;
-import org.apache.qpid.server.SystemLauncherListener;
-import org.apache.qpid.server.logging.logback.LogbackLoggingSystemLauncherListener;
-import org.apache.qpid.server.message.MessageDestination;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Container;
-import org.apache.qpid.server.model.IllegalStateTransitionException;
-import org.apache.qpid.server.model.ManageableMessage;
-import org.apache.qpid.server.model.NotFoundException;
-import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.SystemConfig;
-import org.apache.qpid.server.model.VirtualHostNode;
-import org.apache.qpid.server.plugin.PluggableService;
-import org.apache.qpid.server.store.MemoryConfigurationStore;
-import org.apache.qpid.server.util.FileUtils;
-import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
-import org.apache.qpid.server.virtualhostnode.JsonVirtualHostNode;
-import org.apache.qpid.test.utils.LogbackPropertyValueDiscriminator;
-
-@SuppressWarnings("unused")
-@PluggableService
-public class EmbeddedBrokerPerClassAdminImpl implements BrokerAdmin
-{
- private static final Logger LOGGER = LoggerFactory.getLogger(EmbeddedBrokerPerClassAdminImpl.class);
- private final Map<String, Integer> _ports = new HashMap<>();
- private SystemLauncher _systemLauncher;
- private Container<?> _broker;
- private VirtualHostNode<?> _currentVirtualHostNode;
- private String _currentWorkDirectory;
- private boolean _isPersistentStore;
-
- @Override
- public void beforeTestClass(final Class testClass)
- {
- setClassQualifiedTestName(testClass.getName());
- LOGGER.info("========================= starting broker for test class : " + testClass.getSimpleName());
- try
- {
- String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date(System.currentTimeMillis()));
- _currentWorkDirectory = Files.createTempDirectory(String.format("qpid-work-%s-%s-", timestamp, testClass.getSimpleName())).toString();
-
- Map<String,String> context = new HashMap<>();
- context.put("qpid.work_dir", _currentWorkDirectory);
- context.put("qpid.port.protocol_handshake_timeout", "1000000");
-
- Map<String,Object> systemConfigAttributes = new HashMap<>();
- systemConfigAttributes.put(SystemConfig.INITIAL_CONFIGURATION_LOCATION, "classpath:config-protocol-tests.json");
- systemConfigAttributes.put(ConfiguredObject.CONTEXT, context);
- systemConfigAttributes.put(ConfiguredObject.TYPE, System.getProperty("broker.config-store-type", "JSON"));
- systemConfigAttributes.put(SystemConfig.STARTUP_LOGGED_TO_SYSTEM_OUT, Boolean.FALSE);
-
- if (Thread.getDefaultUncaughtExceptionHandler() == null)
- {
- Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler());
- }
-
- LOGGER.info("Starting internal broker (same JVM)");
-
- List<SystemLauncherListener> systemLauncherListeners = new ArrayList<>();
- systemLauncherListeners.add(new LogbackLoggingSystemLauncherListener());
- systemLauncherListeners.add(new ShutdownLoggingSystemLauncherListener());
- systemLauncherListeners.add(new PortExtractingLauncherListener());
- _systemLauncher = new SystemLauncher(systemLauncherListeners.toArray(new SystemLauncherListener[systemLauncherListeners.size()]));
-
- _systemLauncher.startup(systemConfigAttributes);
- }
- catch (Exception e)
- {
- throw new RuntimeException("Failed to start broker for test class", e);
- }
- }
-
- @Override
- public void beforeTestMethod(final Class testClass, final Method method)
- {
- LOGGER.info("========================= prepare test environment for test : " + testClass.getSimpleName() + "#" + method.getName());
-
- final String virtualHostNodeName = testClass.getSimpleName() + "_" + method.getName();
- final String storeType = System.getProperty("virtualhostnode.type");
- _isPersistentStore = !"Memory".equals(storeType);
-
- String storeDir = null;
- if (System.getProperty("profile", "").startsWith("java-dby-mem"))
- {
- storeDir = ":memory:";
- }
- else if (!MemoryConfigurationStore.TYPE.equals(storeType))
- {
- storeDir = "${qpid.work_dir}" + File.separator + virtualHostNodeName;
- }
-
- String blueprint = System.getProperty("virtualhostnode.context.blueprint");
-
- Map<String, Object> attributes = new HashMap<>();
- attributes.put(VirtualHostNode.NAME, virtualHostNodeName);
- attributes.put(VirtualHostNode.TYPE, storeType);
- attributes.put(VirtualHostNode.CONTEXT, Collections.singletonMap("virtualhostBlueprint", blueprint));
- attributes.put(VirtualHostNode.DEFAULT_VIRTUAL_HOST_NODE, true);
- attributes.put(VirtualHostNode.VIRTUALHOST_INITIAL_CONFIGURATION, blueprint);
- if (storeDir != null)
- {
- attributes.put(JsonVirtualHostNode.STORE_PATH, storeDir);
- }
-
- _currentVirtualHostNode = _broker.createChild(VirtualHostNode.class, attributes);
-
- LOGGER.info("========================= executing test : " + testClass.getSimpleName() + "#" + method.getName());
- setClassQualifiedTestName(testClass.getName() + "." + method.getName());
- LOGGER.info("========================= start executing test : " + testClass.getSimpleName() + "#" + method.getName());
- }
-
- @Override
- public void afterTestMethod(final Class testClass, final Method method)
- {
- LOGGER.info("========================= stop executing test : " + testClass.getSimpleName() + "#" + method.getName());
- setClassQualifiedTestName(testClass.getName());
- LOGGER.info("========================= cleaning up test environment for test : " + testClass.getSimpleName() + "#" + method.getName());
- if (Boolean.getBoolean("broker.clean.between.tests"))
- {
- _currentVirtualHostNode.delete();
- }
- else
- {
- _currentVirtualHostNode.setAttributes(Collections.singletonMap(VirtualHostNode.DEFAULT_VIRTUAL_HOST_NODE,
- false));
- }
- setClassQualifiedTestName(testClass.getName());
- LOGGER.info("========================= cleaning done for test : " + testClass.getSimpleName() + "#" + method.getName());
- }
-
- @Override
- public void afterTestClass(final Class testClass)
- {
- LOGGER.info("========================= stopping broker for test class: " + testClass.getSimpleName());
- _systemLauncher.shutdown();
- _ports.clear();
- if (Boolean.getBoolean("broker.clean.between.tests"))
- {
- FileUtils.delete(new File(_currentWorkDirectory), true);
- }
- LOGGER.info("========================= stopping broker done for test class : " + testClass.getSimpleName());
- setClassQualifiedTestName(null);
- }
-
- @Override
- public InetSocketAddress getBrokerAddress(final PortType portType)
- {
- Integer port = _ports.get(portType.name());
- if (port == null)
- {
- throw new IllegalStateException(String.format("Could not find port with name '%s' on the Broker", portType.name()));
- }
- return new InetSocketAddress(port);
- }
-
- @Override
- public void createQueue(final String queueName)
- {
- final Map<String, Object> attributes = new HashMap<>();
- attributes.put(Queue.NAME, queueName);
- attributes.put(Queue.TYPE, "standard");
- _currentVirtualHostNode.getVirtualHost().createChild(Queue.class, attributes);
- }
-
- @Override
- public void deleteQueue(final String queueName)
- {
- getQueue(queueName).delete();
- }
-
- @Override
- public void putMessageOnQueue(final String queueName, final String... messages)
- {
- for (String message : messages)
- {
- ((QueueManagingVirtualHost<?>) _currentVirtualHostNode.getVirtualHost()).publishMessage(new ManageableMessage()
- {
- @Override
- public String getAddress()
- {
- return queueName;
- }
-
- @Override
- public boolean isPersistent()
- {
- return false;
- }
-
- @Override
- public Date getExpiration()
- {
- return null;
- }
-
- @Override
- public String getCorrelationId()
- {
- return null;
- }
-
- @Override
- public String getAppId()
- {
- return null;
- }
-
- @Override
- public String getMessageId()
- {
- return null;
- }
-
- @Override
- public String getMimeType()
- {
- return "text/plain";
- }
-
- @Override
- public String getEncoding()
- {
- return null;
- }
-
- @Override
- public int getPriority()
- {
- return 0;
- }
-
- @Override
- public Date getNotValidBefore()
- {
- return null;
- }
-
- @Override
- public String getReplyTo()
- {
- return null;
- }
-
- @Override
- public Map<String, Object> getHeaders()
- {
- return null;
- }
-
- @Override
- public Object getContent()
- {
- return message;
- }
-
- @Override
- public String getContentTransferEncoding()
- {
- return null;
- }
- });
- }
-
- }
-
- @Override
- public int getQueueDepthMessages(final String testQueueName)
- {
- Queue queue = _currentVirtualHostNode.getVirtualHost().getChildByName(Queue.class, testQueueName);
- return queue.getQueueDepthMessages();
- }
-
- @Override
- public boolean supportsRestart()
- {
- return _isPersistentStore;
- }
-
- @Override
- public ListenableFuture<Void> restart()
- {
- try
- {
- LOGGER.info("Stopping VirtualHostNode for restart");
- _currentVirtualHostNode.stop();
- LOGGER.info("Starting VirtualHostNode for restart");
- _currentVirtualHostNode.start();
- LOGGER.info("Restarting VirtualHostNode completed");
- }
- catch (Exception e)
- {
- return Futures.immediateFailedFuture(e);
- }
- return Futures.immediateFuture(null);
- }
-
- @Override
- public boolean isSASLSupported()
- {
- return true;
- }
-
- @Override
- public boolean isSASLMechanismSupported(final String mechanismName)
- {
- return true;
- }
-
- @Override
- public boolean isWebSocketSupported()
- {
- return true;
- }
-
- @Override
- public boolean isQueueDepthSupported()
- {
- return true;
- }
-
- @Override
- public String getValidUsername()
- {
- return "guest";
- }
-
- @Override
- public String getValidPassword()
- {
- return "guest";
- }
-
- @Override
- public String getType()
- {
- return "EMBEDDED_BROKER_PER_CLASS";
- }
-
- private Queue getQueue(final String queueName)
- {
- Collection<Queue> queues = _currentVirtualHostNode.getVirtualHost().getChildren(Queue.class);
- for (Queue queue : queues)
- {
- if (queue.getName().equals(queueName))
- {
- return queue;
- }
- }
- throw new NotFoundException(String.format("Queue '%s' not found", queueName));
- }
-
- private void setClassQualifiedTestName(final String name)
- {
- final LoggerContext loggerContext = ((ch.qos.logback.classic.Logger) LOGGER).getLoggerContext();
- loggerContext.putProperty(LogbackPropertyValueDiscriminator.CLASS_QUALIFIED_TEST_NAME, name);
- }
-
- private class PortExtractingLauncherListener implements SystemLauncherListener
- {
- private SystemConfig<?> _systemConfig;
-
- @Override
- public void beforeStartup()
- {
-
- }
-
- @Override
- public void errorOnStartup(final RuntimeException e)
- {
-
- }
-
- @Override
- public void afterStartup()
- {
-
- if (_systemConfig == null)
- {
- throw new IllegalStateException("System config is required");
- }
-
- _broker = _systemConfig.getContainer();
- Collection<Port> ports = _broker.getChildren(Port.class);
- for (Port port : ports)
- {
- _ports.put(port.getName(), port.getBoundPort());
- }
- }
-
- @Override
- public void onContainerResolve(final SystemConfig<?> systemConfig)
- {
- _systemConfig = systemConfig;
- }
-
- @Override
- public void onContainerClose(final SystemConfig<?> systemConfig)
- {
-
- }
-
- @Override
- public void onShutdown(final int exitCode)
- {
-
- }
-
- @Override
- public void exceptionOnShutdown(final Exception e)
- {
-
- }
- }
-
-
- private static class UncaughtExceptionHandler implements Thread.UncaughtExceptionHandler
- {
- private final AtomicInteger _count = new AtomicInteger(0);
-
- @Override
- public void uncaughtException(final Thread t, final Throwable e)
- {
- System.err.print("Thread terminated due to uncaught exception");
- e.printStackTrace();
-
- LOGGER.error("Uncaught exception from thread {}", t.getName(), e);
- _count.getAndIncrement();
- }
-
- public int getAndResetCount()
- {
- int count;
- do
- {
- count = _count.get();
- }
- while (!_count.compareAndSet(count, 0));
- return count;
- }
- }
-
- private class ShutdownLoggingSystemLauncherListener extends SystemLauncherListener.DefaultSystemLauncherListener
- {
- @Override
- public void onShutdown(final int exitCode)
- {
- _systemLauncher = null;
- }
-
- @Override
- public void exceptionOnShutdown(final Exception e)
- {
- if (e instanceof IllegalStateException
- || e instanceof IllegalStateTransitionException)
- {
- System.out.println(
- "IllegalStateException occurred on broker shutdown in test ");
- }
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExternalQpidBrokerAdminImpl.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExternalQpidBrokerAdminImpl.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExternalQpidBrokerAdminImpl.java
deleted file mode 100644
index a580333..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ExternalQpidBrokerAdminImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import java.lang.reflect.Method;
-import java.net.InetSocketAddress;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.qpid.server.plugin.PluggableService;
-
-@SuppressWarnings("unused")
-@PluggableService
-public class ExternalQpidBrokerAdminImpl implements BrokerAdmin
-{
- private static final Logger LOGGER = LoggerFactory.getLogger(ExternalQpidBrokerAdminImpl.class);
-
- @Override
- public void beforeTestClass(final Class testClass)
- {
- LOGGER.debug("beforeTestClass");
- }
-
- @Override
- public void beforeTestMethod(final Class testClass, final Method method)
- {
- LOGGER.debug("beforeTestMethod");
- }
-
- @Override
- public void afterTestMethod(final Class testClass, final Method method)
- {
- LOGGER.debug("afterTestMethod");
- }
-
- @Override
- public void afterTestClass(final Class testClass)
- {
- LOGGER.debug("afterTestClass");
- }
-
- @Override
- public InetSocketAddress getBrokerAddress(final PortType portType)
- {
- Integer port;
- switch (portType)
- {
- case AMQP:
- port = Integer.getInteger("qpid.tests.protocol.broker.external.port.standard");
- break;
- case ANONYMOUS_AMQP:
- port = Integer.getInteger("qpid.tests.protocol.broker.external.port.anonymous");
- break;
- default:
- throw new IllegalArgumentException(String.format("Unknown port type '%s'", portType));
- }
- return new InetSocketAddress(port);
- }
-
- @Override
- public void createQueue(final String queueName)
- {
- LOGGER.debug(String.format("creation of queue '%s' requested", queueName));
- }
-
- @Override
- public void deleteQueue(final String queueName)
- {
- LOGGER.debug(String.format("deletion of queue '%s' requested", queueName));
- }
-
- @Override
- public void putMessageOnQueue(final String queueName, final String... messages)
- {
- LOGGER.debug(String.format("puting of %d messages on queue '%s' requested", messages.length, queueName));
- }
-
- @Override
- public int getQueueDepthMessages(final String testQueueName)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean supportsRestart()
- {
- return false;
- }
-
- @Override
- public ListenableFuture<Void> restart()
- {
- throw new UnsupportedOperationException("External Qpid Broker does not support restart.");
- }
-
- @Override
- public boolean isSASLSupported()
- {
- return true;
- }
-
- @Override
- public boolean isWebSocketSupported()
- {
- return true;
- }
-
- @Override
- public boolean isQueueDepthSupported()
- {
- return false;
- }
-
- @Override
- public boolean isSASLMechanismSupported(final String mechanismName)
- {
- return true;
- }
-
- @Override
- public String getValidUsername()
- {
- return "guest";
- }
-
- @Override
- public String getValidPassword()
- {
- return "guest";
- }
-
- @Override
- public String getType()
- {
- return "EXTERNAL_BROKER";
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ProtocolTestBase.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ProtocolTestBase.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ProtocolTestBase.java
deleted file mode 100644
index 846bed3..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/ProtocolTestBase.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@RunWith(QpidTestRunner.class)
-public abstract class ProtocolTestBase
-{
- private static final Logger LOGGER = LoggerFactory.getLogger(ProtocolTestBase.class);
-
- private BrokerAdmin _brokerAdmin;
-
- public void init(final BrokerAdmin brokerAdmin)
- {
- _brokerAdmin = brokerAdmin;
- }
-
- public BrokerAdmin getBrokerAdmin()
- {
- return _brokerAdmin;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/QpidTestRunner.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/QpidTestRunner.java b/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/QpidTestRunner.java
deleted file mode 100644
index 740bf32..0000000
--- a/systests/protocol-tests-amqp-1-0/src/main/java/org/apache/qpid/tests/protocol/v1_0/QpidTestRunner.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.qpid.tests.protocol.v1_0;
-
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.BlockJUnit4ClassRunner;
-import org.junit.runners.model.FrameworkMethod;
-import org.junit.runners.model.InitializationError;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class QpidTestRunner extends BlockJUnit4ClassRunner
-{
- private final BrokerAdmin _brokerAdmin;
- private final Class _testClass;
-
- public QpidTestRunner(final Class<?> klass) throws InitializationError
- {
- super(klass);
- _testClass = klass;
- _brokerAdmin = (new BrokerAdminFactory()).createInstance("EMBEDDED_BROKER_PER_CLASS");
- }
-
- @Override
- protected Object createTest() throws Exception
- {
- Object test = super.createTest();
- ProtocolTestBase qpidTest = ((ProtocolTestBase) test);
- qpidTest.init(_brokerAdmin);
- return test;
- }
-
- @Override
- public void run(final RunNotifier notifier)
- {
- _brokerAdmin.beforeTestClass(_testClass);
- try
- {
- super.run(notifier);
- }
- finally
- {
- _brokerAdmin.afterTestClass(_testClass);
- }
- }
-
- @Override
- protected void runChild(final FrameworkMethod method, final RunNotifier notifier)
- {
- _brokerAdmin.beforeTestMethod(_testClass, method.getMethod());
- try
- {
- super.runChild(method, notifier);
- }
- finally
- {
- _brokerAdmin.afterTestMethod(_testClass, method.getMethod());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
index 1a1c8bf..817be05 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/bindmapjms/TemporaryDestinationTest.java
@@ -40,14 +40,14 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
import org.apache.qpid.tests.protocol.v1_0.Utils;
-public class TemporaryDestinationTest extends ProtocolTestBase
+public class TemporaryDestinationTest extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
index 83303ad..4bee689 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/CloseExistingPolicy.java
@@ -45,12 +45,12 @@ import org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnect
import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-public class CloseExistingPolicy extends ProtocolTestBase
+public class CloseExistingPolicy extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
index d11e2fc..0c9ce9f 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/MixedPolicy.java
@@ -33,12 +33,12 @@ import org.junit.Test;
import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-public class MixedPolicy extends ProtocolTestBase
+public class MixedPolicy extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
index 404e067..dea12a3 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/soleconn/RefuseConnectionPolicy.java
@@ -46,12 +46,12 @@ import org.apache.qpid.server.protocol.v1_0.type.extensions.soleconn.SoleConnect
import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError;
import org.apache.qpid.server.protocol.v1_0.type.transport.Close;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
-public class RefuseConnectionPolicy extends ProtocolTestBase
+public class RefuseConnectionPolicy extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
index 41b2dc3..a39b1b3 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/websocket/WebSocketTest.java
@@ -39,13 +39,12 @@ import org.junit.Test;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedShort;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
-import org.apache.qpid.tests.protocol.v1_0.HeaderResponse;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
-public class WebSocketTest extends ProtocolTestBase
+public class WebSocketTest extends BrokerAdminUsingTestBase
{
public static final byte[] AMQP_HEADER = "AMQP\0\1\0\0".getBytes(StandardCharsets.UTF_8);
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
index 6327051..6ba9058 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/DeleteOnCloseTest.java
@@ -44,14 +44,14 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Detach;
import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
import org.apache.qpid.tests.protocol.v1_0.Utils;
-public class DeleteOnCloseTest extends ProtocolTestBase
+public class DeleteOnCloseTest extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
index ea7d52a..4f3491f 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
@@ -43,13 +43,13 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.Response;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
-public class MessageFormat extends ProtocolTestBase
+public class MessageFormat extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
index 1c09bb6..5c7a7f5 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java
@@ -51,15 +51,15 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.Response;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
import org.apache.qpid.tests.protocol.v1_0.Utils;
-public class MultiTransferTest extends ProtocolTestBase
+public class MultiTransferTest extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
private String _originalMmsMessageStorePersistence;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
index 1bfe7c0..fdebd11 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java
@@ -69,16 +69,16 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode;
import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
import org.apache.qpid.tests.protocol.v1_0.MessageDecoder;
import org.apache.qpid.tests.protocol.v1_0.MessageEncoder;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.Response;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
-public class TransferTest extends ProtocolTestBase
+public class TransferTest extends BrokerAdminUsingTestBase
{
private static final String TEST_MESSAGE_DATA = "foo";
private InetSocketAddress _brokerAddress;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a7e4a716/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
index f63d85e..d1a47db 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transaction/DischargeTest.java
@@ -49,13 +49,13 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
-import org.apache.qpid.tests.protocol.v1_0.BrokerAdmin;
+import org.apache.qpid.tests.utils.BrokerAdmin;
import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
import org.apache.qpid.tests.protocol.v1_0.Interaction;
-import org.apache.qpid.tests.protocol.v1_0.ProtocolTestBase;
+import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
import org.apache.qpid.tests.protocol.v1_0.SpecificationTest;
-public class DischargeTest extends ProtocolTestBase
+public class DischargeTest extends BrokerAdminUsingTestBase
{
private InetSocketAddress _brokerAddress;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org