public @NotNull HiveMQContainer withExtension(final @NotNull HiveMQExtension hiveMQExtension) {
        try {
            final File extension = hiveMQExtension.createExtension(hiveMQExtension);
            final MountableFile mountableExtension = MountableFile.forHostPath(extension.getPath(), MODE);
            withCopyFileToContainer(mountableExtension, "/opt/hivemq/temp-extensions/" + hiveMQExtension.getId());
        } catch (final Exception e) {
            throw new ContainerLaunchException(e.getMessage() == null ? "" : e.getMessage(), e);
        }
        return self();
    }
Wraps the given class and all its subclasses into an extension
and puts it into '/opt/hivemq/temp-extensions/{extension-id}' inside the container.
<p>
Must be called before the container is started.
<p>
The contents of the '/opt/hivemq/temp-extensions/' directory are copied to '/opt/hivemq/extensions/' before the container is started.

@param hiveMQExtension the {@link HiveMQExtension} of the extension
@return self
modules/hivemq/src/main/java/org/testcontainers/hivemq/HiveMQContainer.java