class MavenProjectProperties implements ProjectProperties {

  @VisibleForTesting
  Set<Artifact> getProjectDependencies() {
    return session
        .getProjects()
        .stream()
        .map(MavenProject::getArtifact)
        .filter(artifact -> !artifact.equals(project.getArtifact()))
        .filter(artifact -> artifact.getFile() != null)
        .collect(Collectors.toSet());
  }

  @VisibleForTesting  MavenProjectProperties(
      PluginDescriptor jibPluginDescriptor,
      MavenProject project,
      MavenSession session,
      Log log,
      TempDirectoryProvider tempDirectoryProvider,
      Supplier<List<JibMavenPluginExtension<?>>> extensionLoader);

}