public DeployedJar deployWithoutRegistering(String artifactId, final File stagedJar)
      throws IOException {
    lock.lock();
    try {
      boolean shouldDeployNewVersion = shouldDeployNewVersion(artifactId, stagedJar);
      if (!shouldDeployNewVersion) {
        logger.debug("No need to deploy a new version of {}", stagedJar.getName());
        return null;
      }

      verifyWritableDeployDirectory();
      Path deployedFile = getNextVersionedJarFile(stagedJar.getName()).toPath();
      FileUtils.copyFile(stagedJar, deployedFile.toFile());

      return new DeployedJar(deployedFile.toFile());
    } finally {
      lock.unlock();
    }
  }
Writes the jarBytes for the given jarName to the next version of that jar file (if the bytes do
not match the latest deployed version).

@return the DeployedJar that was written from jarBytes, or null if those bytes matched the
        latest deployed version
geode-deployment/geode-deployment-legacy/src/main/java/org/apache/geode/deployment/internal/JarDeployer.java