Full Code of rhuss/docker-maven-plugin for AI

master 2d926fe57c81 cached
463 files
1.9 MB
460.0k tokens
3593 symbols
1 requests
Download .txt
Showing preview only (2,131K chars total). Download the full file or copy to clipboard to get everything.
Repository: rhuss/docker-maven-plugin
Branch: master
Commit: 2d926fe57c81
Files: 463
Total size: 1.9 MB

Directory structure:
gitextract_a108wrnn/

├── .circleci/
│   └── config.yml
├── .codecov.yml
├── .github/
│   └── ISSUE_TEMPLATE.md
├── .gitignore
├── .mvn/
│   ├── jvm.config
│   ├── maven.config
│   └── wrapper/
│       ├── maven-wrapper.jar
│       └── maven-wrapper.properties
├── CONTRIBUTING.md
├── Jenkinsfile
├── LICENSE
├── README.md
├── doc/
│   ├── changelog.md
│   ├── ci-docs.sh
│   ├── examples.md
│   ├── howto-release.md
│   ├── integration-tests.md
│   ├── intro.md
│   ├── migration-0.9.x.md
│   ├── readme-0.9.x.md
│   └── update_issue_links.sh
├── it/
│   ├── README.md
│   ├── docker-compose/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── docker/
│   │               ├── Dockerfile
│   │               ├── docker-compose.yml
│   │               └── j4p.war
│   ├── dockerfile/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── docker/
│   │           │   ├── Dockerfile
│   │           │   └── welcome.txt
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── fabric8/
│   │           │           └── dmp/
│   │           │               └── samples/
│   │           │                   └── dockerfile/
│   │           │                       └── HelloWorldServlet.java
│   │           └── webapp/
│   │               └── WEB-INF/
│   │                   └── web.xml
│   ├── dockerignore/
│   │   ├── .maven-dockerignore
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── healthcheck/
│   │   └── pom.xml
│   ├── helloworld/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── fabric8/
│   │       │               └── dmp/
│   │       │                   └── sample/
│   │       │                       └── helloworld/
│   │       │                           └── App.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── dmp/
│   │                           └── sample/
│   │                               └── helloworld/
│   │                                   └── AppTest.java
│   ├── log/
│   │   └── pom.xml
│   ├── net/
│   │   └── pom.xml
│   ├── pom.xml
│   ├── properties/
│   │   └── pom.xml
│   ├── run-java/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── HelloWorld.java
│   ├── smallest/
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── test.xml
│   ├── volume/
│   │   └── pom.xml
│   └── zero-config/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               └── java/
│                   └── HelloWorld.java
├── mvnw
├── pom.xml
├── release.groovy
├── release.sh
├── samples/
│   ├── README.md
│   ├── cargo-jolokia/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── maven/
│   │                           └── docker/
│   │                               └── sample/
│   │                                   └── jolokia/
│   │                                       └── VersionIT.java
│   ├── custom-net/
│   │   └── pom.xml
│   ├── data-jolokia/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── docker/
│   │       │       ├── assembly.xml
│   │       │       ├── demo/
│   │       │       │   ├── .maven-dockerignore
│   │       │       │   ├── Dockerfile
│   │       │       │   ├── Dockerfile.test
│   │       │       │   ├── jolokia-it.war
│   │       │       │   ├── jolokia.war
│   │       │       │   └── please-ignore/
│   │       │       │       └── me.md
│   │       │       ├── environment.properties
│   │       │       └── hello.sh
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── maven/
│   │                           └── docker/
│   │                               └── sample/
│   │                                   └── jolokia/
│   │                                       └── VersionIT.java
│   ├── docker-compose/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── docker/
│   │               ├── Dockerfile
│   │               ├── docker-compose.yml
│   │               └── j4p.war
│   ├── dockerfile/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── docker/
│   │           │   ├── Dockerfile
│   │           │   └── welcome.txt
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── fabric8/
│   │           │           └── dmp/
│   │           │               └── samples/
│   │           │                   └── dockerfile/
│   │           │                       └── HelloWorldServlet.java
│   │           └── webapp/
│   │               └── WEB-INF/
│   │                   └── web.xml
│   ├── dockerignore/
│   │   ├── .maven-dockerignore
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── healthcheck/
│   │   └── pom.xml
│   ├── helloworld/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── fabric8/
│   │       │               └── dmp/
│   │       │                   └── sample/
│   │       │                       └── helloworld/
│   │       │                           └── App.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── dmp/
│   │                           └── sample/
│   │                               └── helloworld/
│   │                                   └── AppTest.java
│   ├── log/
│   │   └── pom.xml
│   ├── multi-wait/
│   │   └── pom.xml
│   ├── net/
│   │   └── pom.xml
│   ├── pom.xml
│   ├── properties/
│   │   └── pom.xml
│   ├── run-java/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── HelloWorld.java
│   ├── smallest/
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── spring-boot-with-jib/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   └── main/
│   │   │       └── java/
│   │   │           └── io/
│   │   │               └── fabric8/
│   │   │                   └── maven/
│   │   │                       └── sample/
│   │   │                           └── springboot/
│   │   │                               └── jib/
│   │   │                                   ├── Application.java
│   │   │                                   └── HelloController.java
│   │   └── static/
│   │       └── testFile.txt
│   ├── test.xml
│   ├── volume/
│   │   └── pom.xml
│   └── zero-config/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               └── java/
│                   └── HelloWorld.java
└── src/
    ├── main/
    │   ├── asciidoc/
    │   │   ├── inc/
    │   │   │   ├── _authentication.adoc
    │   │   │   ├── _docker-build.adoc
    │   │   │   ├── _docker-logs.adoc
    │   │   │   ├── _docker-push.adoc
    │   │   │   ├── _docker-remove.adoc
    │   │   │   ├── _docker-save.adoc
    │   │   │   ├── _docker-source.adoc
    │   │   │   ├── _docker-start.adoc
    │   │   │   ├── _docker-stop.adoc
    │   │   │   ├── _docker-tag.adoc
    │   │   │   ├── _docker-volume-create.adoc
    │   │   │   ├── _docker-volume-remove.adoc
    │   │   │   ├── _docker-watch.adoc
    │   │   │   ├── _external-configuration.adoc
    │   │   │   ├── _global-configuration.adoc
    │   │   │   ├── _goals.adoc
    │   │   │   ├── _image-configuration.adoc
    │   │   │   ├── _implicit-properties.adoc
    │   │   │   ├── _installation.adoc
    │   │   │   ├── _introduction.adoc
    │   │   │   ├── _links.adoc
    │   │   │   ├── _registry.adoc
    │   │   │   ├── build/
    │   │   │   │   ├── _assembly.adoc
    │   │   │   │   ├── _buildargs.adoc
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _healthcheck.adoc
    │   │   │   │   └── _overview.adoc
    │   │   │   ├── external/
    │   │   │   │   ├── _docker_compose.adoc
    │   │   │   │   └── _property_configuration.adoc
    │   │   │   ├── image/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _example.adoc
    │   │   │   │   ├── _example_imagesMap.adoc
    │   │   │   │   └── _naming.adoc
    │   │   │   ├── misc/
    │   │   │   │   ├── _env.adoc
    │   │   │   │   └── _startup.adoc
    │   │   │   ├── push/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   └── _overview.adoc
    │   │   │   ├── start/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _depends-on.adoc
    │   │   │   │   ├── _links.adoc
    │   │   │   │   ├── _logging.adoc
    │   │   │   │   ├── _network.adoc
    │   │   │   │   ├── _overview.adoc
    │   │   │   │   ├── _port-mapping.adoc
    │   │   │   │   ├── _restart.adoc
    │   │   │   │   ├── _volumes.adoc
    │   │   │   │   └── _wait.adoc
    │   │   │   └── watch/
    │   │   │       ├── _configuration.adoc
    │   │   │       └── _overview.adoc
    │   │   └── index.adoc
    │   ├── java/
    │   │   └── io/
    │   │       └── fabric8/
    │   │           └── maven/
    │   │               └── docker/
    │   │                   ├── AbstractBuildSupportMojo.java
    │   │                   ├── AbstractDockerMojo.java
    │   │                   ├── BuildMojo.java
    │   │                   ├── LogsMojo.java
    │   │                   ├── PushMojo.java
    │   │                   ├── RemoveMojo.java
    │   │                   ├── RunMojo.java
    │   │                   ├── SaveMojo.java
    │   │                   ├── SourceMojo.java
    │   │                   ├── StartMojo.java
    │   │                   ├── StopMojo.java
    │   │                   ├── TagMojo.java
    │   │                   ├── VolumeCreateMojo.java
    │   │                   ├── VolumeRemoveMojo.java
    │   │                   ├── WatchMojo.java
    │   │                   ├── access/
    │   │                   │   ├── AuthConfig.java
    │   │                   │   ├── BuildOptions.java
    │   │                   │   ├── ContainerCreateConfig.java
    │   │                   │   ├── ContainerHostConfig.java
    │   │                   │   ├── ContainerNetworkingConfig.java
    │   │                   │   ├── DockerAccess.java
    │   │                   │   ├── DockerAccessException.java
    │   │                   │   ├── DockerConnectionDetector.java
    │   │                   │   ├── DockerMachine.java
    │   │                   │   ├── ExecException.java
    │   │                   │   ├── KeyStoreUtil.java
    │   │                   │   ├── NetworkCreateConfig.java
    │   │                   │   ├── PortMapping.java
    │   │                   │   ├── UrlBuilder.java
    │   │                   │   ├── VolumeCreateConfig.java
    │   │                   │   ├── chunked/
    │   │                   │   │   ├── BuildJsonResponseHandler.java
    │   │                   │   │   ├── EntityStreamReaderUtil.java
    │   │                   │   │   └── PullOrPushResponseJsonHandler.java
    │   │                   │   ├── ecr/
    │   │                   │   │   ├── AwsSigner4.java
    │   │                   │   │   ├── AwsSigner4Request.java
    │   │                   │   │   └── EcrExtendedAuth.java
    │   │                   │   ├── hc/
    │   │                   │   │   ├── ApacheHttpClientDelegate.java
    │   │                   │   │   ├── DockerAccessWithHcClient.java
    │   │                   │   │   ├── http/
    │   │                   │   │   │   ├── HttpClientBuilder.java
    │   │                   │   │   │   └── HttpRequestException.java
    │   │                   │   │   ├── unix/
    │   │                   │   │   │   ├── UnixConnectionSocketFactory.java
    │   │                   │   │   │   ├── UnixSocket.java
    │   │                   │   │   │   └── UnixSocketClientBuilder.java
    │   │                   │   │   ├── util/
    │   │                   │   │   │   ├── AbstractNativeClientBuilder.java
    │   │                   │   │   │   ├── AbstractNativeSocketFactory.java
    │   │                   │   │   │   └── ClientBuilder.java
    │   │                   │   │   └── win/
    │   │                   │   │       ├── NamedPipe.java
    │   │                   │   │       ├── NamedPipeClientBuilder.java
    │   │                   │   │       ├── NpipeConnectionSocketFactory.java
    │   │                   │   │       └── NpipeSocketAddress.java
    │   │                   │   ├── log/
    │   │                   │   │   ├── LogCallback.java
    │   │                   │   │   ├── LogGetHandle.java
    │   │                   │   │   └── LogRequestor.java
    │   │                   │   └── util/
    │   │                   │       ├── EnvCommand.java
    │   │                   │       ├── ExternalCommand.java
    │   │                   │       ├── LocalSocketUtil.java
    │   │                   │       └── RequestUtil.java
    │   │                   ├── assembly/
    │   │                   │   ├── AllFilesExecCustomizer.java
    │   │                   │   ├── ArchiverCustomizer.java
    │   │                   │   ├── AssemblyFiles.java
    │   │                   │   ├── BuildDirs.java
    │   │                   │   ├── DockerAssemblyConfigurationSource.java
    │   │                   │   ├── DockerAssemblyManager.java
    │   │                   │   ├── DockerFileBuilder.java
    │   │                   │   ├── DockerFileKeyword.java
    │   │                   │   ├── DockerFileOption.java
    │   │                   │   └── MappingTrackArchiver.java
    │   │                   ├── config/
    │   │                   │   ├── ArchiveCompression.java
    │   │                   │   ├── Arguments.java
    │   │                   │   ├── AssemblyConfiguration.java
    │   │                   │   ├── AssemblyMode.java
    │   │                   │   ├── BuildImageConfiguration.java
    │   │                   │   ├── BuildImageSelectMode.java
    │   │                   │   ├── CleanupMode.java
    │   │                   │   ├── ConfigHelper.java
    │   │                   │   ├── DockerMachineConfiguration.java
    │   │                   │   ├── HealthCheckConfiguration.java
    │   │                   │   ├── HealthCheckMode.java
    │   │                   │   ├── ImageConfiguration.java
    │   │                   │   ├── ImagePullPolicy.java
    │   │                   │   ├── LogConfiguration.java
    │   │                   │   ├── NetworkConfig.java
    │   │                   │   ├── RegistryAuthConfiguration.java
    │   │                   │   ├── RestartPolicy.java
    │   │                   │   ├── RunImageConfiguration.java
    │   │                   │   ├── RunVolumeConfiguration.java
    │   │                   │   ├── StopMode.java
    │   │                   │   ├── UlimitConfig.java
    │   │                   │   ├── VolumeConfiguration.java
    │   │                   │   ├── WaitConfiguration.java
    │   │                   │   ├── WatchImageConfiguration.java
    │   │                   │   ├── WatchMode.java
    │   │                   │   └── handler/
    │   │                   │       ├── ExternalConfigHandler.java
    │   │                   │       ├── ExternalConfigHandlerException.java
    │   │                   │       ├── ImageConfigResolver.java
    │   │                   │       ├── compose/
    │   │                   │       │   ├── ComposeUtils.java
    │   │                   │       │   ├── DockerComposeConfigHandler.java
    │   │                   │       │   ├── DockerComposeConfiguration.java
    │   │                   │       │   └── DockerComposeServiceWrapper.java
    │   │                   │       └── property/
    │   │                   │           ├── ConfigKey.java
    │   │                   │           ├── PropertyConfigHandler.java
    │   │                   │           ├── PropertyMode.java
    │   │                   │           ├── ValueCombinePolicy.java
    │   │                   │           └── ValueProvider.java
    │   │                   ├── log/
    │   │                   │   ├── DefaultLogCallback.java
    │   │                   │   ├── LogDispatcher.java
    │   │                   │   ├── LogOutput.java
    │   │                   │   ├── LogOutputSpec.java
    │   │                   │   ├── LogOutputSpecFactory.java
    │   │                   │   └── SharedPrintStream.java
    │   │                   ├── model/
    │   │                   │   ├── Container.java
    │   │                   │   ├── ContainerDetails.java
    │   │                   │   ├── ContainersListElement.java
    │   │                   │   ├── ExecDetails.java
    │   │                   │   ├── Image.java
    │   │                   │   ├── ImageArchiveManifest.java
    │   │                   │   ├── ImageArchiveManifestAdapter.java
    │   │                   │   ├── ImageArchiveManifestEntry.java
    │   │                   │   ├── ImageArchiveManifestEntryAdapter.java
    │   │                   │   ├── ImageDetails.java
    │   │                   │   ├── Network.java
    │   │                   │   └── NetworksListElement.java
    │   │                   ├── service/
    │   │                   │   ├── ArchiveService.java
    │   │                   │   ├── BuildService.java
    │   │                   │   ├── ContainerTracker.java
    │   │                   │   ├── DockerAccessFactory.java
    │   │                   │   ├── ImagePullManager.java
    │   │                   │   ├── JibBuildService.java
    │   │                   │   ├── MojoExecutionService.java
    │   │                   │   ├── QueryService.java
    │   │                   │   ├── RegistryService.java
    │   │                   │   ├── RunService.java
    │   │                   │   ├── ServiceHub.java
    │   │                   │   ├── ServiceHubFactory.java
    │   │                   │   ├── VolumeService.java
    │   │                   │   ├── WaitService.java
    │   │                   │   ├── WatchService.java
    │   │                   │   └── helper/
    │   │                   │       └── StartContainerExecutor.java
    │   │                   ├── util/
    │   │                   │   ├── AnsiLogger.java
    │   │                   │   ├── AuthConfigFactory.java
    │   │                   │   ├── AutoPullMode.java
    │   │                   │   ├── ContainerNamingUtil.java
    │   │                   │   ├── CredentialHelperClient.java
    │   │                   │   ├── DeepCopy.java
    │   │                   │   ├── DockerFileUtil.java
    │   │                   │   ├── DockerPathUtil.java
    │   │                   │   ├── EnvUtil.java
    │   │                   │   ├── FormatParameterReplacer.java
    │   │                   │   ├── GavLabel.java
    │   │                   │   ├── ImageArchiveUtil.java
    │   │                   │   ├── ImageName.java
    │   │                   │   ├── ImageNameFormatter.java
    │   │                   │   ├── JibServiceUtil.java
    │   │                   │   ├── JsonFactory.java
    │   │                   │   ├── Logger.java
    │   │                   │   ├── MojoParameters.java
    │   │                   │   ├── NamePatternUtil.java
    │   │                   │   ├── StartOrderResolver.java
    │   │                   │   ├── SuffixFileFilter.java
    │   │                   │   ├── Task.java
    │   │                   │   ├── TimestampFactory.java
    │   │                   │   ├── VolumeBindingUtil.java
    │   │                   │   └── aws/
    │   │                   │       └── AwsSdkAuthConfigFactory.java
    │   │                   └── wait/
    │   │                       ├── ExitCodeChecker.java
    │   │                       ├── HealthCheckChecker.java
    │   │                       ├── HttpPingChecker.java
    │   │                       ├── LogMatchCallback.java
    │   │                       ├── LogWaitChecker.java
    │   │                       ├── LogWaitCheckerCallback.java
    │   │                       ├── PreconditionFailedException.java
    │   │                       ├── TcpPortChecker.java
    │   │                       ├── WaitChecker.java
    │   │                       ├── WaitTimeoutException.java
    │   │                       └── WaitUtil.java
    │   └── resources/
    │       ├── META-INF/
    │       │   └── plexus/
    │       │       └── components.xml
    │       └── assemblies/
    │           ├── artifact-with-dependencies.xml
    │           ├── artifact.xml
    │           ├── hawt-app.xml
    │           ├── project.xml
    │           └── rootWar.xml
    └── test/
        ├── java/
        │   ├── com/
        │   │   └── amazonaws/
        │   │       └── auth/
        │   │           ├── AWSCredentials.java
        │   │           ├── AWSSessionCredentials.java
        │   │           └── DefaultAWSCredentialsProviderChain.java
        │   ├── integration/
        │   │   ├── DockerAccessIT.java
        │   │   ├── DockerAccessWinIT.java
        │   │   └── DockerMachineIT.java
        │   └── io/
        │       └── fabric8/
        │           └── maven/
        │               └── docker/
        │                   ├── BaseMojoTest.java
        │                   ├── RemoveMojoTest.java
        │                   ├── SaveMojoTest.java
        │                   ├── StopMojoTest.java
        │                   ├── UrlBuilderTest.java
        │                   ├── VolumeCreateMojoTest.java
        │                   ├── VolumeRemoveMojoTest.java
        │                   ├── access/
        │                   │   ├── BuildConfigTest.java
        │                   │   ├── ContainerCreateConfigTest.java
        │                   │   ├── ContainerHostConfigTest.java
        │                   │   ├── DockerConnectionDetectorTest.java
        │                   │   ├── KeyStoreUtilTest.java
        │                   │   ├── PortMappingPropertyWriteHelperTest.java
        │                   │   ├── PortMappingTest.java
        │                   │   ├── ecr/
        │                   │   │   ├── AwsSigner4RequestTest.java
        │                   │   │   └── EcrExtendedAuthTest.java
        │                   │   ├── hc/
        │                   │   │   └── DockerAccessWithHcClientTest.java
        │                   │   └── log/
        │                   │       └── LogRequestorTest.java
        │                   ├── assembly/
        │                   │   ├── DockerAssemblyConfigurationSourceTest.java
        │                   │   ├── DockerAssemblyManagerTest.java
        │                   │   ├── DockerFileBuilderTest.java
        │                   │   └── MappingTrackArchiverTest.java
        │                   ├── config/
        │                   │   ├── BuildImageConfigurationTest.java
        │                   │   ├── BuildImageConfigurationWithMavenDepsTest.java
        │                   │   ├── CleanupModeTest.java
        │                   │   ├── ConfigHelperTest.java
        │                   │   ├── HealthCheckConfigTest.java
        │                   │   ├── ImageConfigResolverTest.java
        │                   │   ├── LogConfigurationTest.java
        │                   │   ├── NetworkingConfigTest.java
        │                   │   ├── RegistryAuthConfigurationTest.java
        │                   │   ├── UlimitConfigTest.java
        │                   │   └── handler/
        │                   │       ├── AbstractConfigHandlerTest.java
        │                   │       ├── ArchiveCompressionTest.java
        │                   │       ├── compose/
        │                   │       │   ├── ComposeUtilsTest.java
        │                   │       │   └── DockerComposeConfigHandlerTest.java
        │                   │       └── property/
        │                   │           ├── PropertyConfigHandlerTest.java
        │                   │           ├── PropertyModeTest.java
        │                   │           └── ValueProviderTest.java
        │                   ├── log/
        │                   │   ├── DefaultLogCallbackTest.java
        │                   │   ├── LogOutputSpecDateTest.java
        │                   │   ├── LogOutputSpecFactoryTest.java
        │                   │   └── LogOutputSpecTest.java
        │                   ├── model/
        │                   │   ├── ContainerDetailsTest.java
        │                   │   ├── ContainerListElementTest.java
        │                   │   ├── ImageArchiveManifestAdapterTest.java
        │                   │   ├── ImageArchiveManifestEntryAdapterTest.java
        │                   │   └── ImageDetailsTest.java
        │                   ├── service/
        │                   │   ├── BuildServiceTest.java
        │                   │   ├── ContainerTrackerTest.java
        │                   │   ├── JibBuildServiceTest.java
        │                   │   ├── LoadImageTest.java
        │                   │   ├── MojoExecutionServiceTest.java
        │                   │   ├── RegistryServiceTest.java
        │                   │   ├── RunServiceTest.java
        │                   │   ├── VolumeServiceTest.java
        │                   │   └── helper/
        │                   │       └── StartContainerExecutorTest.java
        │                   ├── util/
        │                   │   ├── AnsiLoggerTest.java
        │                   │   ├── AuthConfigFactoryTest.java
        │                   │   ├── AuthConfigTest.java
        │                   │   ├── AutoPullModeTest.java
        │                   │   ├── ContainerNamingUtilTest.java
        │                   │   ├── CredentialHelperClientTest.java
        │                   │   ├── DockerFileUtilTest.java
        │                   │   ├── DockerPathUtilTest.java
        │                   │   ├── EnvUtilTest.java
        │                   │   ├── GavLabelTest.java
        │                   │   ├── ImageArchiveUtilTest.java
        │                   │   ├── ImageNameFormatterTest.java
        │                   │   ├── ImageNameTest.java
        │                   │   ├── JibServiceUtilTest.java
        │                   │   ├── NamePatternUtilTest.java
        │                   │   ├── PathTestUtil.java
        │                   │   ├── StartOrderResolverTest.java
        │                   │   ├── TimestampFactoryTest.java
        │                   │   ├── VolumeBindingUtilTest.java
        │                   │   ├── WaitUtilTest.java
        │                   │   └── aws/
        │                   │       └── AwsSdkAuthConfigFactoryTest.java
        │                   └── wait/
        │                       ├── ExitCodeCheckerTest.java
        │                       ├── LogMatchCallbackTest.java
        │                       └── LogWaitCheckerTest.java
        └── resources/
            ├── compose/
            │   ├── docker-compose-network-aliases.yml
            │   ├── docker-compose.yml
            │   └── version/
            │       ├── compose-no-version.yml
            │       ├── compose-version-2.yml
            │       ├── compose-version-2x.yml
            │       └── compose-wrong-version.yml
            ├── docker/
            │   ├── Dockerfile.multiline_label.test
            │   ├── Dockerfile.test
            │   ├── Dockerfile_assembly_verify_copy_chown_valid.test
            │   ├── Dockerfile_assembly_verify_copy_invalid.test
            │   ├── Dockerfile_assembly_verify_copy_valid.test
            │   ├── Dockerfile_optimised.test
            │   ├── Dockerfile_tcp.test
            │   ├── Dockerfile_udp.test
            │   ├── containerCreateConfigAll.json
            │   └── containerHostConfigAll.json
            ├── interpolate/
            │   ├── at/
            │   │   ├── Dockerfile_1
            │   │   └── Dockerfile_1.expected
            │   ├── none/
            │   │   ├── Dockerfile_1
            │   │   └── Dockerfile_1.expected
            │   └── var/
            │       ├── Dockerfile_1
            │       └── Dockerfile_1.expected
            └── io/
                └── fabric8/
                    └── maven/
                        └── docker/
                            ├── access/
                            │   ├── certpath/
                            │   │   ├── ca.pem
                            │   │   ├── cert.pem
                            │   │   └── key.pem
                            │   ├── keys/
                            │   │   ├── ecdsa.pem
                            │   │   ├── invalid.pem
                            │   │   ├── pkcs1.pem
                            │   │   └── pkcs8.pem
                            │   └── test-environment.props
                            └── util/
                                ├── Dockerfile_from_simple
                                ├── Dockerfile_multi_stage
                                ├── Dockerfile_multi_stage_named_build_stages
                                ├── Dockerfile_multi_stage_named_redundant_build_stages
                                ├── Dockerfile_multi_stage_with_args
                                ├── openshift_nologin_config.yaml
                                └── openshift_simple_config.yaml

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2

jobs:
  # Build Website
  doc:
    working_directory: ~/fabric8io/dmp-docs
    docker:
    - image: circleci/node:9-browsers
    steps:
    - checkout
    - run:
      - git config --global user.email "circleci@fabric8.io"
      - git config --global user.name "CircleCI"
    - run: ./doc/ci-docs.sh

  # Run unit tests
  build:
    working_directory: ~/fabric8io/docker-maven-plugin
    docker:
    - image: circleci/openjdk:11
    steps:
    - checkout
    - restore_cache:
        key: dmp-{{ checksum "pom.xml" }}
    - run: mvn install -Pjacoco
    - run: bash <(curl -s https://codecov.io/bash)
    - save_cache:
        key: dmp-{{ checksum "pom.xml" }}
        paths:
        - ~/.m2

  # Run integration tests
  e2e-tests:
    working_directory: ~/fabric8io/docker-maven-plugin
    machine: true
    steps:
    - checkout
    - restore_cache:
        key: dmp-{{ checksum "pom.xml" }}
    - run:
        command: |
          mvn clean install -DskipTests
          PROJECT_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
          cd it/
          find . -type f -exec sed -i 's/0.29-SNAPSHOT/'"$PROJECT_VERSION"'/g' {} +
          mvn clean install
    - save_cache:
        key: dmp-{{ checksum "pom.xml" }}
        paths:
        - ~/.m2

  sonar-pr:
    working_directory: ~/fabric8io/dmp-sonar-pr
    docker:
    - image: circleci/openjdk:11
    steps:
    - checkout
    - restore_cache:
        key: dmp-sonar-pr-{{ checksum "pom.xml" }}
    - run: |
        if [ -n "${CIRCLE_PR_NUMBER}" ]; then
          mvn clean -Pjacoco org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
             -Dsonar.pullrequest.base=master \
             -Dsonar.pullrequest.branch=${CIRCLE_BRANCH} \
             -Dsonar.pullrequest.key=${CIRCLE_PR_NUMBER} \
             -Dsonar.pullrequest.provider=GitHub \
             -Dsonar.pullrequest.github.repository=fabric8io/docker-maven-plugin \
             -Dsonar.github.oauth=${GITHUB_COMMENT_TOKEN} \
             -Dsonar.host.url=https://sonarcloud.io \
             -Dsonar.organization=default \
             -Dsonar.login=${SONARQUBE_TOKEN}
        else
          echo "No Sonar PR analysis as this is not a pull request"
        fi

    - save_cache:
        key: dmp-sonar-pr-{{ checksum "pom.xml" }}
        paths:
        - ~/.m2

  sonar:
    working_directory: ~/fabric8io/dmp-sonar
    docker:
    - image: circleci/openjdk:11
    steps:
    - checkout
    - restore_cache:
        key: dmp-sonar-{{ checksum "pom.xml" }}
    - run: |
        mvn clean -Pjacoco org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
        -Dsonar.host.url=https://sonarcloud.io \
        -Dsonar.organization=default \
        -Dsonar.login=${SONARQUBE_TOKEN}
    - save_cache:
        key: dmp-sonar-{{ checksum "pom.xml" }}
        paths:
        - ~/.m2

workflows:
  version: 2
  all:
    jobs:
    - doc:
        filters:
          branches:
            only: dmp.fabric8.io
    - build
    - e2e-tests
    - sonar-pr
    - sonar:
        filters:
          branches:
            only: master


================================================
FILE: .codecov.yml
================================================
coverage:
  range: "45...90"
  precision: 2
  round: down
  status:
    project:
      default:
        threshold: "2%"
comment:
  layout: "header, diff, tree, sunburst"
  require_changes: true



================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!-- Please fill out the following information to help us in analyzing the issue, but feel free to skip it if you don't have the information at hand or if it does not apply. Please remove everything which does not apply to the issue. -->

### Description

### Info

* d-m-p version :
* Maven version (`mvn -v`) :
```

```
* Docker version :
* If it's a bug, how to reproduce :
* If it's a feature request, what is your use case :
* Sample project : *[GitHub Clone URL]*


================================================
FILE: .gitignore
================================================
.idea/
.DS_Store
target/
*.iml
.classpath
.project
.settings
.*.md.html
temp

================================================
FILE: .mvn/jvm.config
================================================
-Xmx2048m -Djava.awt.headless=true -XX:+UseG1GC -XX:+UseStringDeduplication


================================================
FILE: .mvn/maven.config
================================================
-Dmaven.artifact.threads=8


================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip


================================================
FILE: CONTRIBUTING.md
================================================
## Contributing 

You want to contribute ? Awesome ! We **♥︎♥︎ LOVE ♥︎♥︎** contributions ;-)

Here some things to check out when doing a PR:

* Please sign-off your commits as described below.
* If adding a new feature please [update the documentation](https://github.com/fabric8io/docker-maven-plugin/blob/master/src/main/asciidoc/), too.
* Don't forget the unit tests.
* If adding a new configuration option, don't forget to add this to the [PropertyHandler](https://github.com/fabric8io/docker-maven-plugin/blob/master/src/main/java/io/fabric8/maven/docker/config/handler/property/PropertyConfigHandler.java), too.

However, if you can't do some of the points above, please still consider contributing. Simply ask us on `#fabric8` at Freenode or via an GitHub [issue](https://github.com/fabric8io/docker-maven-plugin/issues). We are not dogmatic.

### Signing off your commits

Pull requests are highly appreciated and most of them get applied. However, you
must sign-off your code so that you certify that your  contributions is compatible with the
license of this project (which is the [Apache Public License 2](../LICENSE)). The sign-off also certifies
that you wrote it or otherwise have the right to
pass it on as an open-source patch under the APL 2.  The rules are simple: if you
can certify the below (from
[developercertificate.org](http://developercertificate.org/)):

```
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
```

then you just add a line to every git commit message:

    Signed-off-by: Joe Smith <joe.smith@email.com>

with your real name (first and last name)

If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`. If you forgot this you can
use `git commit -s --amend` to add this in retrospective for the last commit.
If you need to sign-off multiple commits within a branch, you need to do an interactive
rebase with `git rebase -i`. A nice shortcut for signing off every commit in a branch can
be provided with this [alias](http://stackoverflow.com/questions/25570947/how-to-use-git-interactive-rebase-for-signing-off-a-series-of-commits)
which you can put into your `~/.gitconfig`:

````
[alias]
  # Usage: git signoff-rebase [base-commit]
  signoff-rebase = "!EDITOR='sed -i -re s/^pick/e/' sh -c 'git rebase -i $1 && while test -f .git/rebase-merge/interactive; do git commit --amend --signoff --no-edit && git rebase --continue; done' -"
  # Ideally we would use GIT_SEQUENCE_EDITOR in the above instead of EDITOR but that's not supported for git < 1.7.8.
````

When sending pull request we prefer that to be a single commit. So please squash your commits
with an interactive rebase before sending the pull request.  This is nicely explained [here](https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request).

Said all this, don't hesitate to ask when there are any problems or you have an issue with this process.


================================================
FILE: Jenkinsfile
================================================
#!/usr/bin/groovy
@Library('github.com/fabric8io/fabric8-pipeline-library@master')
def dummy
mavenNode {
  dockerNode {
    checkout scm
    sh "git remote set-url origin git@github.com:fabric8io/docker-maven-plugin.git"

    def pipeline = load 'release.groovy'

    stage 'Stage'
    def stagedProject = pipeline.stage()

    stage 'Promote'
    pipeline.release(stagedProject)

  }
}


================================================
FILE: LICENSE
================================================
Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed 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.

================================================
FILE: README.md
================================================
# docker-maven-plugin

[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/docker-maven-plugin/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/io.fabric8/docker-maven-plugin/)
[![Circle CI](https://circleci.com/gh/fabric8io/docker-maven-plugin/tree/master.svg?style=shield)](https://circleci.com/gh/fabric8io/docker-maven-plugin/tree/master)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=io.fabric8%3Adocker-maven-plugin&metric=coverage)](https://sonarcloud.io/dashboard?id=io.fabric8%3Adocker-maven-plugin)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=io.fabric8%3Adocker-maven-plugin&metric=sqale_index)](https://sonarcloud.io/dashboard?id=io.fabric8%3Adocker-maven-plugin)

This is a Maven plugin for building Docker images and managing containers for integration tests.
It works with Maven 3.0.5 and Docker 1.6.0 or later.

#### Goals

| Goal                                                                                            | Description                                      | Default Lifecycle Phase |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------- |
| [`docker:start`](https://fabric8io.github.io/docker-maven-plugin/#docker:start)                 | Create and start containers                      | pre-integration-test    |
| [`docker:stop`](https://fabric8io.github.io/docker-maven-plugin/#docker:stop)                   | Stop and destroy containers                      | post-integration-test   |
| [`docker:build`](https://fabric8io.github.io/docker-maven-plugin/#docker:build)                 | Build images                                     | install                 |
| [`docker:watch`](https://fabric8io.github.io/docker-maven-plugin/#docker:watch)                 | Watch for doing rebuilds and restarts            |                         |
| [`docker:push`](https://fabric8io.github.io/docker-maven-plugin/#docker:push)                   | Push images to a registry                        | deploy                  |
| [`docker:remove`](https://fabric8io.github.io/docker-maven-plugin/#docker:remove)               | Remove images from local docker host             | post-integration-test   |
| [`docker:logs`](https://fabric8io.github.io/docker-maven-plugin/#docker:logs)                   | Show container logs                              |                         |
| [`docker:source`](https://fabric8io.github.io/docker-maven-plugin/#docker:source)               | Attach docker build archive to Maven project     | package                 |
| [`docker:save`](https://fabric8io.github.io/docker-maven-plugin/#docker:save)                   | Save image to a file                             |                         |
| [`docker:volume-create`](https://fabric8io.github.io/docker-maven-plugin/#docker:volume-create) | Create a volume to share data between containers | pre-integration-test    |
| [`docker:volume-remove`](https://fabric8io.github.io/docker-maven-plugin/#docker:volume-remove) | Remove a created volume                          | post-integration-test   |

#### Documentation

* The **[User Manual](https://fabric8io.github.io/docker-maven-plugin)** [[PDF](https://fabric8io.github.io/docker-maven-plugin/docker-maven-plugin.pdf)] has a detailed reference for all and everything.
* The [Introduction](doc/intro.md) is a high level
  overview of this plugin's features and provides an usage example.
  provided goals and possible configuration parameters.
* [Examples](doc/examples.md) are below `samples/` and contain example
  setups which you can use as blueprints for your own projects.
* [ChangeLog](doc/changelog.md) has the release history of this plugin.
* [Contributing](CONTRIBUTING.md) explains how you can contribute to this project. Pull requests are highly appreciated!


#### Docker API Support

* Docker 1.6 (**v1.18**) is the minimal required version
* Docker 1.8.1 (**v1.20**) is required for `docker:watch`
* Docker 1.9 (**v1.21**) is required for using custom networks and build args.


================================================
FILE: doc/changelog.md
================================================
# ChangeLog

* **0.34.0** (2020-09-13)
  - Support `ARG` in `FROM` ([#859](https://github.com/fabric8io/docker-maven-plugin/issues/859))
  - Handle authentication tokens returned from credential helpers ([#1348](https://github.com/fabric8io/docker-maven-plugin/issues/1348))
  - Migrate from joda-time to java.time ([#1025](https://github.com/fabric8io/docker-maven-plugin/issues/1025))
    The handling of Y changes when the week straddle the New year ([Stack Overflow](https://stackoverflow.com/questions/26431882/difference-between-year-of-era-and-week-based-year))
  - Fix JSON error when parsin tafs ([#1354](https://github.com/fabric8io/docker-maven-plugin/issues/1354))
  - Add `skipPush` option to build image configuration ([#1243](https://github.com/fabric8io/docker-maven-plugin/issues/1243))
  - docker.container.<alias>.ip property is no longer set ([#1242](https://github.com/fabric8io/docker-maven-plugin/issues/1242))
  - Support `squash` in build options to squash newly built layers into a single layer ([#785](https://github.com/fabric8io/docker-maven-plugin/issues/785)) 
  - Support for JIB mode([#1277](https://github.com/fabric8io/docker-maven-plugin/pull/1277))

* **0.33.0** (2020-01-21)
  - Update to jnr-unixsocket 0.25 to solve concurrency issues ([#552](https://github.com/fabric8io/docker-maven-plugin/issues/552))
  - Udate ECR AuthorizationToken URL to new endpoint ([#1317](https://github.com/fabric8io/docker-maven-plugin/issues/1317))
  - Allow including `com.amazonaws:aws-java-sdk-core` as plugin dependency to pick up various forms of AWS credentials with which to authenticate at AWS ECR ([#1311](https://github.com/fabric8io/docker-maven-plugin/issues/1311))

* **0.32.0** (2020-01-08)
  - Support building dockerFile without pushing it to docker server ([#1197](https://github.com/fabric8io/docker-maven-plugin/issues/1197))
  - Update to jnr-unixsocket 0.23
  - Add null check for null instance in config.json for email ([#1262](https://github.com/fabric8io/docker-maven-plugin/issues/1262))
  - Allow merging of image configurations using `<imagesMap>` ([#1259](https://github.com/fabric8io/docker-maven-plugin/issues/1259))
  - Update to joda-time 2.10.4 ([#706](https://github.com/fabric8io/docker-maven-plugin/issues/706))
  - Add docker:build support for 'network' option ([#1030](https://github.com/fabric8io/docker-maven-plugin/issues/1030))
  - Avoiding chown to reduce the image size ([#544](https://github.com/fabric8io/docker-maven-plugin/issues/544))
    (_Note: Assembly user format `user:user:user` with the third user option has been marked deprecated
    and will not be available in future versions of plugin_)
  - Failure referencing a previous staged image in FROM clause ([#1264](https://github.com/fabric8io/docker-maven-plugin/issues/1264))
  - Treat bridged and default network mode the same ([#1234](https://github.com/fabric8io/docker-maven-plugin/issues/1234))
  - Fix NPE when cacheFrom is missing from config ([#1274](https://github.com/fabric8io/docker-maven-plugin/issues/1274))
  - Fix healthy option regression introduced in 0.25.0 ([#1279](https://github.com/fabric8io/docker-maven-plugin/issues/1279))
  - Allow killing and removing all spawned containers ([#1182](https://github.com/fabric8io/docker-maven-plugin/issues/1182))
  - Deprecated "authToken" for ECR authentication in favor of "auth" ([#1286](https://github.com/fabric8io/docker-maven-plugin/issues/1286))
  - Allow overriding of existing image in creation of temporary one with same tag before push ([#838](https://github.com/fabric8io/docker-maven-plugin/issues/838))
  - Pick up AWS credentials from ENV variables ([#1310](https://github.com/fabric8io/docker-maven-plugin/issues/1310))
  - Fix accidentally disabled logging under certain conditions ([#1291](https://github.com/fabric8io/docker-maven-plugin/issues/1291))
  - When stopping containers, try harder to remove containers, even if one fails ([#1251](https://github.com/fabric8io/docker-maven-plugin/issues/1251))
  - Added integration tests ([#1209](https://github.com/fabric8io/docker-maven-plugin/issues/1209))

* **0.31.0** (2019-08-10)
  - Fix test cases on Windows ([#1220](https://github.com/fabric8io/docker-maven-plugin/issues/1220))
  - ECR credentials from IAM Task role for ECS Fargate deployment ([#1233](https://github.com/fabric8io/docker-maven-plugin/issues/1233))
  - Fix bug in properties names extracted from docker config json file ([#1237](https://github.com/fabric8io/docker-maven-plugin/issues/1237))
  - Fix that portPropertyFile is not written anymore ([#1112](https://github.com/fabric8io/docker-maven-plugin/issues/1112))
  - Use identity token if found in Docker config.json ([#1249](https://github.com/fabric8io/docker-maven-plugin/issues/1249))
  - Allow also starting with an environment variable in `targetDir` of an aseembly config instead of insisting on only absolute path-names ([#1244](https://github.com/fabric8io/docker-maven-plugin/issues/1244))
  - Support for pattern matching in `docker:stop` and `docker:remove` ([#1215](https://github.com/fabric8io/docker-maven-plugin/issues/1215))
  - Increase interoperability with docker-java by accepting `registry.username` and `registry.password`, too ([#1245](https://github.com/fabric8io/docker-maven-plugin/issues/1245))

* **0.30.0** (2019-04-21)
  - Restore ANSI color to Maven logging if disabled during plugin execution and enable color for Windows with Maven 3.5.0 or later. Color logging is enabled by default, but disabled if the Maven CLI disables color (e.g. in batch mode) ([#1108](https://github.com/fabric8io/docker-maven-plugin/issues/1108))
  - Fix NPE if docker:save is called with -Dfile=file-name-only.tar ([#1203](https://github.com/fabric8io/docker-maven-plugin/issues/1203))
  - Fix NPE in BuildImageConfiguration ([#1200](https://github.com/fabric8io/docker-maven-plugin/issues/1200))
  - Improve GZIP compression performance for docker:save ([#1205](https://github.com/fabric8io/docker-maven-plugin/issues/1205))
  - Allow docker:save to attach image archive as a project artifact ([#1210](https://github.com/fabric8io/docker-maven-plugin/pull/1210))
  - Use pattern to detect image name in archive loaded during build and tag with image name from the project configuration ([#1207](https://github.com/fabric8io/docker-maven-plugin/issues/1207))
  - Add 'cacheFrom' option to specify images to use as cache sources ([#1132](https://github.com/fabric8io/docker-maven-plugin/issues/1132))

Renamed "nocache" to "noCache" for consistencies reason. "nocache" is still supported but deprecated and will be removed in a future version. Same is true for the global system property "docker.nocache" which is renamed to "docker.noCache" 

* **0.29.0** (2019-04-08)
  - Avoid failing docker:save when no images with build configuration are present ([#1185](https://github.com/fabric8io/docker-maven-plugin/issues/1185))
  - Reintroduce minimal API-VERSION parameter in order to support docker versions below apiVersion 1.25
  - docs: Correct default image naming
  - Proxy settings are being ignored ([#1148](https://github.com/fabric8io/docker-maven-plugin/issues/1148))
  - close api version http connection ([#1152](https://github.com/fabric8io/docker-maven-plugin/issues/1152))
  - Log more information when verbose=true  ([#917](https://github.com/fabric8io/docker-maven-plugin/issues/917))
  - Obtain container ip address from custom network for tcp/http wait
  - Fix http (SSL) ping with 'allowAllHosts' flag enabled
  - Update to jnr-unixsocket 0.22
  - Enhance @sha256 digest for tags in FROM (image_name:image_tag@sha256<digest>) ([#541](https://github.com/fabric8io/docker-maven-plugin/issues/541))
  - Support docker SHELL setting for runCmds ([#1157](https://github.com/fabric8io/docker-maven-plugin/issues/1157))
  - Added 'autoRemove' option for running containers ([#1179](https://github.com/fabric8io/docker-maven-plugin/issues/1179))
  - Added support for AWS EC2 instance roles when pushing to AWS ECR ([#1186](https://github.com/fabric8io/docker-maven-plugin/issues/1186))
  - Introduce `contextDir` configuration option which would be used to specify docker build context ([#1189](https://github.com/fabric8io/docker-maven-plugin/issues/1189))
  - Add support for auto-pulling multiple base image for multi stage builds ([#1057](https://github.com/fabric8io/docker-maven-plugin/issues/1057))
  - Fix usage of credential helper that do not support 'version' command ([#1159](https://github.com/fabric8io/docker-maven-plugin/issues/1159))

Please note that `dockerFileDir` is now deprecated in favor of `contextDir` which also allows absolute paths to Dockerfile with 
`dockerFile` and it will be removed in 1.0.0. It's still supported in this release but users are suggested to migrate to 
`contextDir` instead.
  
* **0.28.0** (2018-12-13)
  - Update to JMockit 1.43
  - Compiles with Java 11
  - Update to jnr-unixsocket version to 0.21 ([#1089](https://github.com/fabric8io/docker-maven-plugin/issues/1089))
  - Add 'readOnly' option for docker:run cto mount container's root fs read-only ([#1125](https://github.com/fabric8io/docker-maven-plugin/issues/1125))
  - Provide container properties to the wait configuration execution ([#1111](https://github.com/fabric8io/docker-maven-plugin/issues/1111))
  - Allow @sha256 digest for tags in FROM ([#541](https://github.com/fabric8io/docker-maven-plugin/issues/541))

* **0.27.2** (2018-10-05)
  - Fix NPE regression related to volumes (again) ([#1091](https://github.com/fabric8io/docker-maven-plugin/issues/1091))
  - Fix NPE when stopping containers with autoCreateCustomNetworks ([#1097](https://github.com/fabric8io/docker-maven-plugin/issues/1097))
  - Smarter API version handling ([#1060](https://github.com/fabric8io/docker-maven-plugin/issues/1060))
  - Fix regression when calling the credential helper for authentication, leading to an exception because of the usage of an already shutdown executor service ([#1098](https://github.com/fabric8io/docker-maven-plugin/issues/1098))
  - Add support for CPU configurations with compose ([#1102](https://github.com/fabric8io/docker-maven-plugin/issues/1102))

* **0.27.1** (2018-09-28)
  - Fix NPE when no volume configuration is present ([#1091](https://github.com/fabric8io/docker-maven-plugin/issues/1091))
  - Allow credentialhelper look up the registry without scheme prefix ([#1068](https://github.com/fabric8io/docker-maven-plugin/issues/1068))

* **0.27.0** (2018-09-26)
  - Jump to Java 8 as minimal Java version
  - Fix NPE in docker:remove-volumes when no volume configuration is given ([#1086](https://github.com/fabric8io/docker-maven-plugin/issues/1086))
  - Fix NPE when no networks are configured ([#1055](https://github.com/fabric8io/docker-maven-plugin/issues/1055))
  - Fix Base64 encoding for X-Registry-Auth used for Docker authentication ([#1084](https://github.com/fabric8io/docker-maven-plugin/issues/1084))
  - Fix property configuration based's build detection ([#1078](https://github.com/fabric8io/docker-maven-plugin/issues/1078))
  - Introduce container name patterns for naming containers ([#931](https://github.com/fabric8io/docker-maven-plugin/issues/931))
  - Respect environment variables DOCKER_CONFIG, KUBECONFIG for looking up credentials ([#1083](https://github.com/fabric8io/docker-maven-plugin/issues/1083))
  - Change from org.json with Gson for less restrictive licensing ([#1016](https://github.com/fabric8io/docker-maven-plugin/issues/1016)) ([#1064](https://github.com/fabric8io/docker-maven-plugin/issues/1064))
  - Fix missing actions in a watch restart ([#1070](https://github.com/fabric8io/docker-maven-plugin/issues/1070))
  - Fix for creating volumes with proper configuration during "docker:start" ([#986](https://github.com/fabric8io/docker-maven-plugin/issues/986))
  - Fix logging failure on Windows ([#873](https://github.com/fabric8io/docker-maven-plugin/issues/873))

* **0.26.1** (2018-07-20)
  - Simple Dockerfile triggered also when only a single run section is given
  - Sample added for how to use run-java-sh in simple dockerfile mode
  - Allow both cred helpers and auth in Docker config ([#1041](https://github.com/fabric8io/docker-maven-plugin/issues/1041))

* **0.26.0** (2018-05-16)
  - Always create missing target directory for docker:save ([#1013](https://github.com/fabric8io/docker-maven-plugin/issues/1013))
  - d-m-p plugins for adding extra files introduced. See documentation for more information.
  - Update assembly plugin to 3.1.0 ([#1021](https://github.com/fabric8io/docker-maven-plugin/issues/1021))
  - Add option for regenerating certificates after starting Docker Machine ([#1019](https://github.com/fabric8io/docker-maven-plugin/issues/1019))
  - Add `startPeriod` to `healthCheck` ([#961](https://github.com/fabric8io/docker-maven-plugin/issues/961))
  - Unbreak setting of entrypoint in `exec` form when property mode is enabled ([#1020](https://github.com/fabric8io/docker-maven-plugin/issues/1020))
  - Fix enabling of log configuration ([#1010](https://github.com/fabric8io/docker-maven-plugin/issues/1010))
  - Add possibility to use `docker.imagePropertyConfiguration` with multiple images ([#1001](https://github.com/fabric8io/docker-maven-plugin/issues/1001))
  - Fix network aliases management for docker-compose mode ([#1000](https://github.com/fabric8io/docker-maven-plugin/issues/1000))

* **0.25.2** (2018-04-14)
  - Fix for docker login issue with index.docker.io using a credential helper ([#946](https://github.com/fabric8io/docker-maven-plugin/issues/946))

* **0.25.1** (2018-04-12)
  - Fix regression which broke labels and env with space ([#988](https://github.com/fabric8io/docker-maven-plugin/issues/988))
  - Fix and enhanced zero-config Dockerfile mode

* **0.25.0** (2018-04-04)
  - Fix possible NPE when logging to a file and the parent directory does not exist yet ([#911](https://github.com/fabric8io/docker-maven-plugin/issues/911)) ([#940](https://github.com/fabric8io/docker-maven-plugin/issues/940))
  - Change content type to "application/json" when talking to the Docker daemon ([#945](https://github.com/fabric8io/docker-maven-plugin/issues/945))
  - PostStart exec breakOnError now fails fast ([#970](https://github.com/fabric8io/docker-maven-plugin/issues/970))
  - Use docker.skip.tag property on push and remove ([#954](https://github.com/fabric8io/docker-maven-plugin/issues/954)) ([#869](https://github.com/fabric8io/docker-maven-plugin/issues/869))
  - Property placeholders are not interpolated when they are the only thing in the XML element value ([#960](https://github.com/fabric8io/docker-maven-plugin/issues/960))
  - Fix deadlock waiting on docker log pattern to match ([#767](https://github.com/fabric8io/docker-maven-plugin/issues/767)) ([#981](https://github.com/fabric8io/docker-maven-plugin/issues/981)) ([#947](https://github.com/fabric8io/docker-maven-plugin/issues/947))
  - Support multiline labels and empty labels ([#968](https://github.com/fabric8io/docker-maven-plugin/issues/968))
  - Handle multi line credential helper responses ([#930](https://github.com/fabric8io/docker-maven-plugin/issues/930))
  - Add support for merging external properties with XML configuration ([#938](https://github.com/fabric8io/docker-maven-plugin/issues/938)) ([#948](https://github.com/fabric8io/docker-maven-plugin/issues/948))
  - Allow to specify different environment variables for run and build via properties ([#386](https://github.com/fabric8io/docker-maven-plugin/issues/386))
  - Add simplified configuration which picks up a plain Dockerfile automatically from `src/main/docker` ([#957](https://github.com/fabric8io/docker-maven-plugin/issues/957))

* **0.24.0** (2018-02-07)
  - Respect system properties for ECR authentication ([#897](https://github.com/fabric8io/docker-maven-plugin/issues/897))
  - Simplified auto pull handling and moved to `imagePullPolicy` instead.
  - Initialize shutdown hook early to allow killing of containers when waiting for a condition ([#921](https://github.com/fabric8io/docker-maven-plugin/issues/921))
  - Fix for including in assembly in archive mode when using a Dockerfile ([#916](https://github.com/fabric8io/docker-maven-plugin/issues/916))
  - Fix for hanging wait on log ([#904](https://github.com/fabric8io/docker-maven-plugin/issues/904))
  - Fix for credential helper which do not return a version ([#896](https://github.com/fabric8io/docker-maven-plugin/issues/896))
  - Also remove tagged images when calling `docker:remove` ([#193](https://github.com/fabric8io/docker-maven-plugin/issues/193))
  - Introduced a `removeMode` for selecting the images to remove
  - Introduced a `breakOnError` for the `postStart` and `preStop` hooks in the
    wait configuration ([#914](https://github.com/fabric8io/docker-maven-plugin/issues/914))

Please note that `autoPullMode` is deprecated now and the behaviour of the `autoPullMode == always` has been changed slightly so that now, it really always pulls the image from the registry. Also `removeAll` for `docker:remove` is deprecated in favor of `removeMode` (and the default mode has changed slightly). Please refer to the documentation for more information.

* **0.23.0** (2017-11-04)
  - Support relative paths when binding volumes in `docker-compose.yml` ([#846](https://github.com/fabric8io/docker-maven-plugin/issues/846))
  - Allow  the session token for AWS authentication to be included in order to allow temporary security credentials provided by the AWS Security Token Service (AWS STS) to sign requests ([#883](https://github.com/fabric8io/docker-maven-plugin/issues/883))
  - Add support for credential helper to authenticate against a registry ([#821](https://github.com/fabric8io/docker-maven-plugin/issues/821))
  - Fix registry auth config in plugin configuration ([#858](https://github.com/fabric8io/docker-maven-plugin/issues/858))
  - Preserve leading whitespace in logs ([#875](https://github.com/fabric8io/docker-maven-plugin/issues/875))
  - Maven property interpolation in Dockerfiles ([#877](https://github.com/fabric8io/docker-maven-plugin/issues/877))
  - Allow parameters for the log prefix ([#890](https://github.com/fabric8io/docker-maven-plugin/issues/890))
  - When removing a volume don't error if the volume does not exist ([#788](https://github.com/fabric8io/docker-maven-plugin/issues/788))
  - Fix warning when COPY and/or ADD with parameters are used ([#884](https://github.com/fabric8io/docker-maven-plugin/issues/884))

* **0.22.1** (2017-08-28)
  - Allow Docker compose version "2", too ([#829](https://github.com/fabric8io/docker-maven-plugin/issues/829))
  - Allow a registry to be set programmatically ([#853](https://github.com/fabric8io/docker-maven-plugin/issues/853))

* **0.22.0** (2017-08-24)
  - Fix NPE when detecting cert paths ([#764](https://github.com/fabric8io/docker-maven-plugin/issues/764))
  - Fix `skipDockerMachine` ([#759](https://github.com/fabric8io/docker-maven-plugin/issues/759))
  - Fix property config handler to work also with dockerFile and dockerFileDir ([#790](https://github.com/fabric8io/docker-maven-plugin/issues/790))
  - Fix `dockerFile` option when pointing to another Dockerfile name ([#784](https://github.com/fabric8io/docker-maven-plugin/issues/784))
  - Allow comma separated list of container names in dependsOn elements ([#810](https://github.com/fabric8io/docker-maven-plugin/issues/810))
  - Trim whitespace and ignore empty elements in build configuration ports, runCmds, tags, volumes ([#816](https://github.com/fabric8io/docker-maven-plugin/issues/816))
  - Trim whitespace and ignore empty elements in run configuration ports ([#816](https://github.com/fabric8io/docker-maven-plugin/issues/816))
  - Fix "useAllReactorProjects" in assembly ([#812](https://github.com/fabric8io/docker-maven-plugin/issues/812))
  - Add ECDSA support ([#824](https://github.com/fabric8io/docker-maven-plugin/issues/824))
  - Fix test failures when build under Windows ([#834](https://github.com/fabric8io/docker-maven-plugin/issues/834))
  - Update dependencies to latest versions where possible

* **0.21.0** (2017-05-16)
  - Add wait checker for checking the exit code of a container ([#498](https://github.com/fabric8io/docker-maven-plugin/issues/498))
  - Check for exited container when doing wait checks ([#757](https://github.com/fabric8io/docker-maven-plugin/issues/757))
  - New assembly configuration "name" for specifying the directory which holds the assembly files ([#634](https://github.com/fabric8io/docker-maven-plugin/issues/634))
  - Add support for property replacement in external Dockerfiles ([#777](https://github.com/fabric8io/docker-maven-plugin/issues/777))

Please note that now filtering in an external Dockerfiles is switched on by default. This might interfere with Docker build args, so should switch filtering off with `<filter>false</filter>` in the `<build>` configuration if you have issues with this. See also the Documentation about [Filtering](https://dmp.fabric8.io/#build-filtering) for more Details.

* **0.20.1** (2017-03-29)
  - Tune log output for image names ([#737](https://github.com/fabric8io/docker-maven-plugin/issues/737))
  - Allow image with multiple path segments ([#694](https://github.com/fabric8io/docker-maven-plugin/issues/694))
  - Add support for PKCS#8 private keys in pem.key file. ([#730](https://github.com/fabric8io/docker-maven-plugin/issues/730))
  - Improve resource management for certificates and keys. ([#730](https://github.com/fabric8io/docker-maven-plugin/issues/730))
  - When using properties for configuration only build when `from` or `fromExt` is set ([#736](https://github.com/fabric8io/docker-maven-plugin/issues/736))
  - Add new mojo "docker:save" for saving the image to a file ([#687](https://github.com/fabric8io/docker-maven-plugin/issues/687))
  - Check whether a temporary tag could be removed and throw an error if not ([#725](https://github.com/fabric8io/docker-maven-plugin/issues/725))
  - Allow multi line matches in log output ([#628](https://github.com/fabric8io/docker-maven-plugin/issues/628))
  - Add a wait condition on a healthcheck when starting up containers ([#719](https://github.com/fabric8io/docker-maven-plugin/issues/719))
  - Don't use authentication from config when no "auth" is set ([#731](https://github.com/fabric8io/docker-maven-plugin/issues/731))
  
* **0.20.0** (2017-02-17)
  - Removed `build-nofork` and `source-nofork` in favor for a more direct solution which prevents forking of the lifecycle. Please refer the documentation, chapter "Assembly" for more information about this.

The experimental goals `build-nofork` and `source-nofork` have been removed again. Please use `build` and `source` directly when binding to execution phases.

* **0.19.1** (2017-02-09)

  - Fix handling of `run` commands from properties ([#684](https://github.com/fabric8io/docker-maven-plugin/issues/684))
  - Fix empty `<link>` causing `NullPointerException` ([#693](https://github.com/fabric8io/docker-maven-plugin/issues/693))

* **0.19.0** (2017-01-03)
  - Better log message when waiting for URL ([#640](https://github.com/fabric8io/docker-maven-plugin/issues/640))
  - Extended authentication for AWS ECR ([#663](https://github.com/fabric8io/docker-maven-plugin/issues/663))
  - Add two new goals: "volume-create" and "volume-remove" for volume handling independent of images.
  - Support for loading from an tar archive (option `<build><dockerArchive>`) ([#645](https://github.com/fabric8io/docker-maven-plugin/issues/645))
  - Support when both `dockerFileDir` and `dockerFile` are set and `dockerFile` is a relative path ([#624](https://github.com/fabric8io/docker-maven-plugin/issues/624))
  - Fix concurrency issue when writing into log files ([#652](https://github.com/fabric8io/docker-maven-plugin/issues/652))
  - Support any Docker build options ([#666](https://github.com/fabric8io/docker-maven-plugin/issues/666))

* **0.18.1** (2016-11-17)
  - Renamed `basedir` and `exportBasedir` in an `<assembly>` configuration to `targetDir` and `exportTargetDir` since this better reflects the purpose, i.e. the target in the Docker image to which the assembly is copied. The old name is still recognized but deprecated.
  - Fix issue with log statements which use a single argument form
  - Fix bug in HTTP wait configuration when using an external property handler ([#613](https://github.com/fabric8io/docker-maven-plugin/issues/613))
  - Fix NPE for "docker:log" when the container to log has already been stopped ([#612](https://github.com/fabric8io/docker-maven-plugin/issues/612))
  - Allow a protocol (tcp/udp) for the specification of a port ([#610](https://github.com/fabric8io/docker-maven-plugin/issues/610))

The following variables in the assembly configuration has been renamed for consistencies sake:

 * `basedir` --> `targetDir`
 * `exportBasedir` --> `exportTargetDir`

The old variable names are still accepted but will be removed for release 1.0

* **0.17.2** (2016-11-3)
  - Fix issues with an empty Docker config file

* **0.17.1** (2016-10-28)
  - Add initial [Docker compose](https://dmp.fabric8.io/#docker-compose) support ([#384](https://github.com/fabric8io/docker-maven-plugin/issues/384))
  - Made `docker:run` running in the foreground
  - Add lifecycle fork to package for `docker:build` and `docker:source` for ease of use. Introduced `docker:build-nofork` and `docker:source-nofork`
  - Removed lifecycle forks for all other Mojos ([#567](https://github.com/fabric8io/docker-maven-plugin/issues/567)) ([#599](https://github.com/fabric8io/docker-maven-plugin/issues/599))
  - Add new option `tarLongFileMode` for the assembly configuration to avoid warning for too long files ([#591](https://github.com/fabric8io/docker-maven-plugin/issues/591))
  - Add new option `tmpfs` for `<run>` to add mount pathes for temorary file systems ([#455](https://github.com/fabric8io/docker-maven-plugin/issues/455))
  - Changed `docker.image` to `docker.filter` and `<image>` to `<filter>`.

For 0.17 the lifecycle handling of the plugins has changed slightly. All forks to the _initialize_ phase have been removed since they collide with certain setups. Instead a fork to the _package_ phase has been introduced for `docker:build` and `docker:source` to make it easier for them to be consumed on the commandline (because otherwise at least `package` has to be added as goal so that the assembly could be constructed from the artifacts built). If you have these goals bound to an `<execution>` please use `build-nofork` and `source-nofork` instead, otherwise the package phase will be called twice.

Also the treatment of the Maven property `docker.image` has changed. This was supposed to be used as a filter which caused a lot of confusion if people accidentally put their Docker image names into this property. Now the property has no special meaning anymore, and you can use `docker.filter` now for filtering out a specific images to build. For the same reason the top-level configuration element `<image>` has been renamed to `<filter>`.

* **0.16.9** (2016-10-23)
  - Removed (undocumented) property `docker.image.name` which could be used to be inserted as a `%a` specifier part in an image name.
  - Fixed exposing of all property and port mappings ([#583](https://github.com/fabric8io/docker-maven-plugin/issues/583))
  - Fix concurrency issue on log wait ([#596](https://github.com/fabric8io/docker-maven-plugin/issues/596))
  - Add Dockerfile HEALTHCHECK support ([#594](https://github.com/fabric8io/docker-maven-plugin/issues/594))
  - Fix writing empty property files ([#592](https://github.com/fabric8io/docker-maven-plugin/issues/592))

* **0.16.8** (2016-10-14)
  - Allow multiple network links per `<link>` element ([#558](https://github.com/fabric8io/docker-maven-plugin/issues/558))
  - Fix startup of dependent containers when using links with specific container ids ([#586](https://github.com/fabric8io/docker-maven-plugin/issues/586))

* **0.16.7** (2016-10-07)
  - Even better logging

* **0.16.6** (2016-10-07)
  - Fix concurrency issues when doing a watch on logs ([#574](https://github.com/fabric8io/docker-maven-plugin/issues/574))
  - Break push with dedicated registry if temporary image tag already exists ([#575](https://github.com/fabric8io/docker-maven-plugin/issues/575))
  - Reduce log output for the non color case when pulling images ([#568](https://github.com/fabric8io/docker-maven-plugin/issues/568))
  - Add possibility to change colors in log messages
  - Don't print a progressbar when in batch mode (mvn -B) ([#564](https://github.com/fabric8io/docker-maven-plugin/issues/564))
  - Add `exposedProperty` key to change the alias part of the exposed container properties ([#557](https://github.com/fabric8io/docker-maven-plugin/issues/557))

* **0.16.5** (2016-09-27)
  - Refactored Docker connection parameter detection
  - Added a <fromExt> for extended definition of base images ([#572](https://github.com/fabric8io/docker-maven-plugin/issues/572))

* **0.16.4** (2016-09-26)
  - Fix issue with DOCKER_HOST coming from Docker Machine
  - Don't pull a 'scratch' base image ([#565](https://github.com/fabric8io/docker-maven-plugin/issues/565))
  - Fix handling when looking up non-existing containers ([#566](https://github.com/fabric8io/docker-maven-plugin/issues/566))

* **0.16.3** (2016-09-22)
  - Add 'allowAllHosts' to ping wait checker ([#559](https://github.com/fabric8io/docker-maven-plugin/issues/559))
  - Allow 'stopAllContainers' also as Maven properties ([#536](https://github.com/fabric8io/docker-maven-plugin/issues/536))
  - Use alias for stopping containers when naming strategy "alias" is used ([#536](https://github.com/fabric8io/docker-maven-plugin/issues/536))
  - New option 'startParallel' for docker:start to speedup execution ([#531](https://github.com/fabric8io/docker-maven-plugin/issues/531))
  - Tuned detection of docker host connection parameters to be more extensible

* **0.16.2** (2016-09-15)
  - Fixed naming of 'buildArgs' for `docker:build` (was `args` formerly)
  - Experimental Support for 'Docker for Windows' ([#523](https://github.com/fabric8io/docker-maven-plugin/issues/523))
  - Remove versions from custom lifecycle deps ([#539](https://github.com/fabric8io/docker-maven-plugin/issues/539))
  - Fix extra new line in logoutput ([#538](https://github.com/fabric8io/docker-maven-plugin/issues/538))

* **0.15.16** (2016-08-03)
  - Run 'stopContainer' in a Future to short circuit extra waiting ([#518](https://github.com/fabric8io/docker-maven-plugin/issues/518))
  - Don't pass `docker.buildArg` values that are empty ([#529](https://github.com/fabric8io/docker-maven-plugin/issues/529))
  - Add new implicit generated properties `docker.container.<alias>.net.<name>.ip` when custom networks are used ([#533](https://github.com/fabric8io/docker-maven-plugin/issues/533))

* **0.15.14** (2016-07-29)
  - Pattern match fix for multiline log output. Related to ([#259](https://github.com/fabric8io/docker-maven-plugin/issues/259))

* **0.15.13** (2016-07-29)
  - Add <securityOpts> for running containers in special security contexts ([#524](https://github.com/fabric8io/docker-maven-plugin/issues/524))
  - Add support for multiples network aliases ([#466](https://github.com/fabric8io/docker-maven-plugin/issues/466))

* **0.15.12** (2016-07-25)
  - API and documentation updates

* **0.15.11** (2016-07-20)
  - Invoke the `initialize` phase before docker goals ([#315](https://github.com/fabric8io/docker-maven-plugin/issues/315))
  - Allow images to only be pulled once per build (useful for reactor projects) ([#504](https://github.com/fabric8io/docker-maven-plugin/issues/504))
  - Allow retry of pushing a docker image in case of a 500 error ([#508](https://github.com/fabric8io/docker-maven-plugin/issues/508))
  - Add "ulimits" to run-configuration ([#484](https://github.com/fabric8io/docker-maven-plugin/issues/484))

* **0.15.10** (2016-07-19)
  - Don't do redirect when waiting on an HTTP port ([#499](https://github.com/fabric8io/docker-maven-plugin/issues/499))
  - Removed the container fetch limit of 100 and optimized getting containers by name and image ([#513](https://github.com/fabric8io/docker-maven-plugin/issues/513))

* **0.15.9** (2016-06-28)
  - Fixed issue when target directory does not exist yet ([#497](https://github.com/fabric8io/docker-maven-plugin/issues/497))

* **0.15.8** (2016-06-27)
  - Removed image configuration caching ([#495](https://github.com/fabric8io/docker-maven-plugin/issues/495))
  - Fix for tcp wait when used with Docker for Mac ([#430](https://github.com/fabric8io/docker-maven-plugin/issues/430))
  - Add warning when assembly is empty when watching a Docker image ([#490](https://github.com/fabric8io/docker-maven-plugin/issues/490))
  - Add `docker.skip.build`, `docker.skip.run`, `docker.skip.push` properties and
    renamed `docker.skipTags` to `docker.skip.tag` ([#483](https://github.com/fabric8io/docker-maven-plugin/issues/483))
  - Reverted jansi back to version 1.11 because of [this issue](https://github.com/fusesource/jansi/issues/58)
  - Add new assembly config options `permissions` for fine tuning permissions in the docker.tar ([#477](https://github.com/fabric8io/docker-maven-plugin/issues/477)). Deprecated `ignorePermissions`
    in favor of a `<permissions>ignore</permissions>`
  - Add auto creation of custom networks if the option `autoCreateCustomNetwork` is set ([#482](https://github.com/fabric8io/docker-maven-plugin/issues/482))
  - Support for docker machine added ([#481](https://github.com/fabric8io/docker-maven-plugin/issues/481))

* **0.15.7** (2016-06-09)
  - Add support for '.maven-dockerinclude' for including certain files in plain Dockerfile build ([#471](https://github.com/fabric8io/docker-maven-plugin/issues/471))
  - Add support for placeholders in image names.
  - Expose container id as Maven property `docker.container.<alias>.id` ([#412](https://github.com/fabric8io/docker-maven-plugin/issues/412))
  - Fix broken link in documentation ([#468](https://github.com/fabric8io/docker-maven-plugin/issues/468))

* **0.15.4** (2016-06-03)
  - Update dependencies: Apache HttpClient 4.5.2, JMockit 1.23, ...
  - Fix read-only bindings ([#462](https://github.com/fabric8io/docker-maven-plugin/issues/462))
  - Add 'shmSize' as option to the build config ([#463](https://github.com/fabric8io/docker-maven-plugin/issues/463))
  - Fixed issue with `memory` and `

* **0.15.3** (2016-05-27)
  - Add duration information when pulling, building and pushing images ([#313](https://github.com/fabric8io/docker-maven-plugin/issues/313))
  - Fixed logging to always use format strings ([#457](https://github.com/fabric8io/docker-maven-plugin/issues/457))
  - Allow extended image names ([#459](https://github.com/fabric8io/docker-maven-plugin/issues/459))

* **0.15.2** (2016-05-19)
  - More robust response stream parsing ([#436](https://github.com/fabric8io/docker-maven-plugin/issues/436))
  - Add `docker.dockerFileDir` and `docker.dockerFile` to the properties configuration provider. ([#438](https://github.com/fabric8io/docker-maven-plugin/issues/438))
  - Fix splitting of bind volumes for Windows pathes ([#443](https://github.com/fabric8io/docker-maven-plugin/issues/443))
  - Add new build config option `user` for switching the user at the end of the Dockerfile. `docker.user` can be used
    for the properties configuration provider ([#441](https://github.com/fabric8io/docker-maven-plugin/issues/441))
  - Include dot dirs when creating the build tar ([#446](https://github.com/fabric8io/docker-maven-plugin/issues/446))
  - Fix property handler with wait config but empty tcp wait connection ([#451](https://github.com/fabric8io/docker-maven-plugin/issues/451))

* **0.15.1** (2016-05-03)
  - Fix push / pull progress bar ([#91](https://github.com/fabric8io/docker-maven-plugin/issues/91))
  - Allow empty environment variable ([#434](https://github.com/fabric8io/docker-maven-plugin/issues/434))
  - Async log request get now their own HTTP client ([#344](https://github.com/fabric8io/docker-maven-plugin/issues/344)) ([#259](https://github.com/fabric8io/docker-maven-plugin/issues/259))

* **0.15.0** (2016-04-27)
  - Be more conservative when no "warnings" are returned on create ([#407](https://github.com/fabric8io/docker-maven-plugin/issues/407))
  - Fix parsing of timestamps with numeric timezone ([#410](https://github.com/fabric8io/docker-maven-plugin/issues/410))
  - Validate image names to fit Docker conventions ([#423](https://github.com/fabric8io/docker-maven-plugin/issues/423)) ([#419](https://github.com/fabric8io/docker-maven-plugin/issues/419))
  - Add support for builds args in external Dockerfiles ([#334](https://github.com/fabric8io/docker-maven-plugin/issues/334))
  - Move `dockerFileDir` to topLevel `<build>` and introduced `dockerFile` directive
   `build>assembly>dockerFileDir` is now deprecated and will be removed.
  - Add new packaging "docker" (build + run), "docker-build" (build only) and
    "docker-tar" (creating source)  ([#433](https://github.com/fabric8io/docker-maven-plugin/issues/433))
  - Add `docker:run` as an alias to `docker:start`
  - Expose certain container properties also as Maven properties. By default
    the format is `docker.container.<alias>.ip` for the internal IP address of container with alias `<alias>`.
    ([#198](https://github.com/fabric8io/docker-maven-plugin/issues/198))

* **0.14.2**
  - Introduce a mode `try` for `<cleanup>` so that an image gets removed if not being still used.
    This is the default now, which should be close enough to `true` (except that it won't fail the build
    when the image couldn't be removed) ([#401](https://github.com/fabric8io/docker-maven-plugin/issues/401))

* **0.14.1**
  - First (test) release performed with a fabric8 CD pipeline. No new features.

* **0.14.0**
  - Add support for Docker network and `host`, `bridge` and `container` network modes ([#335](https://github.com/fabric8io/docker-maven-plugin/issues/335))
  - Add support for older Maven versions, minimum required version is now 3.0.5 ([#290](https://github.com/fabric8io/docker-maven-plugin/issues/290))
  - Update to maven-assembly-plugin 2.6 which fixes issue with line endings on windows ([#127](https://github.com/fabric8io/docker-maven-plugin/issues/127))
  - Disabled color output on Windows because ANSI emulation can't be enabled in Maven's sl4j logger which
    caches system out/err
  - Moved to [fabric8io](https://github.com/orgs/fabric8io/dashboard) as GitHub organization which implies
    also changes in the maven coordinates (Maven group-id is now **io.fabric8**)
  - Fix wait section in samples ([#385](https://github.com/fabric8io/docker-maven-plugin/issues/385))
  - Add logging configuration to property handler
  - Add support for a logging driver ([#379](https://github.com/fabric8io/docker-maven-plugin/issues/379))

With version `0.14.0` this plugin moved to the [fabric8](http://fabric8.io) community in order to provide
even better services. This include a change in the Maven coordinates. I.e. the Maven group id is now **io.fabric8**
(formerly: "org.jolokia"). Please adapt your pom files accordingly.

* **0.13.9**
  - Check also registry stored with an `https` prefix ([#367](https://github.com/fabric8io/docker-maven-plugin/issues/367))
  - Don't stop containers not started by the project during parallel reactor builds ([#372](https://github.com/fabric8io/docker-maven-plugin/issues/372))

* **0.13.8**
  - Add option `nocache` to build configuration ([#348](https://github.com/fabric8io/docker-maven-plugin/issues/348))
  - Add system property `docker.nocache` to disable build caching globally ([#349](https://github.com/fabric8io/docker-maven-plugin/issues/349))
  - Add support for '.maven-dockerignore' for excluding certain files in plain Dockerfile build ([#362](https://github.com/fabric8io/docker-maven-plugin/issues/362))
  - If naming strategy is "alias" stop only the container with the given alias with `docker:stop` ([#359](https://github.com/fabric8io/docker-maven-plugin/issues/359))
  - Fix that containers without d-m-p label where still stopped
  - Add support for OpenShift login (use `-DuseOpenShiftAuth` for enabling this) ([#350](https://github.com/fabric8io/docker-maven-plugin/issues/350))
  - Add support for dedicated pull and push registry configuration respectively ([#351](https://github.com/fabric8io/docker-maven-plugin/issues/351))

* **0.13.7**
  - Fix default for "cleanup" in build configuration to `true` (as documented) ([#338](https://github.com/fabric8io/docker-maven-plugin/issues/338))
  - Fix dynamic host property update in port mapping ([#323](https://github.com/fabric8io/docker-maven-plugin/issues/323))
  - New goal 'docker:source' for attaching a Docker tar archive to the Maven project with an classifier "docker-<alias>" ([#311](https://github.com/fabric8io/docker-maven-plugin/issues/311))
  - Be more careful with chowning the user when <user> is used in an assembly ([#336](https://github.com/fabric8io/docker-maven-plugin/issues/336))
  - Move VOLUME to the end of the Dockerfile to allow initialization via RUN commands ([#341](https://github.com/fabric8io/docker-maven-plugin/issues/341))
  - Allow multiple configurations with different Docker hosts again ([#320](https://github.com/fabric8io/docker-maven-plugin/issues/320))
  - `docker:start` blocks now only when system property docker.follow is given ([#249](https://github.com/fabric8io/docker-maven-plugin/issues/249))
  - `docker:stop` only stops containers started by this plugin by default ([#87](https://github.com/fabric8io/docker-maven-plugin/issues/87))
  - Lookup `~/.docker/config.json` for registry credentials as fallback ([#147](https://github.com/fabric8io/docker-maven-plugin/issues/147))

* **0.13.6**
  - Don't use user from image when pulling base images ([#147](https://github.com/fabric8io/docker-maven-plugin/issues/147))
  - Add a new assembly descriptor reference  `hawt-app` for using assemblies created by
    [hawt-app](https://github.com/fabric8io/fabric8/tree/master/hawt-app-maven-plugin)

* **0.13.5**
  - Improvements for `docker:watch` ([#288](https://github.com/fabric8io/docker-maven-plugin/issues/288))
  - Add parameter `kill` to `<watch>` configuration for waiting before
    sending SIGKILL when stopping containers ([#293](https://github.com/fabric8io/docker-maven-plugin/issues/293))
  - Add `file` for `<log>` to store the logout put in a file. Use
    `docker.logStdout` to show logs nevertheless to stdout ([#287](https://github.com/fabric8io/docker-maven-plugin/issues/287))
  - Support `watchMode == copy` for copying changed assembly files
    into a running container ([#268](https://github.com/fabric8io/docker-maven-plugin/issues/268))
  - Add a `target/classpath` file to the assembly as `classpath` for
    `artifact-with-dependencies` predefined assembly descriptor ([#283](https://github.com/fabric8io/docker-maven-plugin/issues/283))
  - Disable Apache HTTP Client retry in WaitUtil ([#297](https://github.com/fabric8io/docker-maven-plugin/issues/297))

* **0.13.4**
  - Support explicit exec arguments for `start.cmd` and
    `start.entrypoint`. ([#253](https://github.com/fabric8io/docker-maven-plugin/issues/253))
  - Fix processing of split chunked JSON responses
    ([#259](https://github.com/fabric8io/docker-maven-plugin/issues/259))
  - Fix for default registry handling. Again and
    again. ([#261](https://github.com/fabric8io/docker-maven-plugin/issues/261))
  - Allow `runCmds` to be compressed into a single command with the
    build config option
    `optimise`. ([#263](https://github.com/fabric8io/docker-maven-plugin/issues/263))
  - Proper error message when default timeout is hit while waiting
    ([#274](https://github.com/fabric8io/docker-maven-plugin/issues/274))
  - Add proper error message when docker host URL is malformed
    ([#277](https://github.com/fabric8io/docker-maven-plugin/issues/277))
  - If no wait condition is given in wait continue immediately
    ([#276](https://github.com/fabric8io/docker-maven-plugin/issues/276))
  - Add logic to specify exec commands during postStart and preStop
    ([#272](https://github.com/fabric8io/docker-maven-plugin/issues/272))
  - Fixed docker:watch bug when watching on plain files

* **0.13.3**
  - Allow dangling images to be cleaned up after build
    ([#20](https://github.com/fabric8io/docker-maven-plugin/issues/20))
  - Adapt order of WORKDIR and RUN when building images
    ([#222](https://github.com/fabric8io/docker-maven-plugin/issues/222))
  - Allow 'build' and/or 'run' configuration to be skipped
    ([#207](https://github.com/fabric8io/docker-maven-plugin/issues/207))
  - Refactored to use 'inspect' instead of 'list' for checking the
    existence of an image
    ([#230](https://github.com/fabric8io/docker-maven-plugin/issues/230))
  - Refactored ApacheHttpClientDelegate to avoid leaking connections
    ([#232](https://github.com/fabric8io/docker-maven-plugin/issues/232))
  - Allow empty `build` or `assembly` elements
    ([#214](https://github.com/fabric8io/docker-maven-plugin/issues/214))
    ([#236](https://github.com/fabric8io/docker-maven-plugin/issues/236))
  - Add new configuration parameter 'maxConnections' to allow to
    specify the number of parallel connections to the Docker
    Host. Default: 100
    ([#254](https://github.com/fabric8io/docker-maven-plugin/issues/254))
  - Allow multiple containers of the same image to be linked
    ([#182](https://github.com/fabric8io/docker-maven-plugin/issues/182))
  - HTTP method and status code can be specified when waiting on an
    HTTP URL
    ([#258](https://github.com/fabric8io/docker-maven-plugin/issues/258))
  - Introduced global `portPropertyFile` setting
    ([#90](https://github.com/fabric8io/docker-maven-plugin/issues/90))
  - Allow the container's host ip to be bound to a maven property and
    exported

* **0.13.2**
  - "run" directives can be added to the Dockerfile
    ([#191](https://github.com/fabric8io/docker-maven-plugin/issues/191))
  - Support user information in wait URL
    ([#211](https://github.com/fabric8io/docker-maven-plugin/issues/211))
  - Stop started container in case of an error during startup
    ([#217](https://github.com/fabric8io/docker-maven-plugin/issues/217))
  - Allow linking to external containers
    ([#195](https://github.com/fabric8io/docker-maven-plugin/issues/195))
  - Allow volume mounting from external containers
    ([#73](https://github.com/fabric8io/docker-maven-plugin/issues/73))

* **0.13.1**
  - Allow autoPull to be forced on docker:build and docker:start
    ([#96](https://github.com/fabric8io/docker-maven-plugin/issues/96))
  - Respect username when looking up credentials for a Docker registry
    ([#174](https://github.com/fabric8io/docker-maven-plugin/issues/174))
  - Add "force=1" to push for Fedora/CentOs images allowing to push to
    docker hub

Note that the default registry has been changed to `docker.io` as
docker hub doesn't use `registry.hub.docker.com` as the default
registry and refused to authenticate against this registry. For
backward compatibility reasons `registry.hub.docker.com`,
`index.docker.io` and `docker.io` can be used as a server id in
`~/.m2/settings.xml` for the default credentials for pushing without
registry to Docker hub.

* **0.13.0**
  - Add `docker:watch`
    ([#187](https://github.com/fabric8io/docker-maven-plugin/issues/187))
  - Allow `extraHosts` IPs to be resolved at runtime
    ([#196](https://github.com/fabric8io/docker-maven-plugin/issues/196))
  - Add `workDir` as configuration option to `<build>`
    ([#204](https://github.com/fabric8io/docker-maven-plugin/issues/204))
  - Fix problem with log output and wait
    ([#200](https://github.com/fabric8io/docker-maven-plugin/issues/200))
  - Don't verify SSL server certificates if `DOCKER_TLS_VERIFY` is not
    set
    ([#192](https://github.com/fabric8io/docker-maven-plugin/issues/192))
  - For bind path on Windows machines
    ([#188](https://github.com/fabric8io/docker-maven-plugin/issues/188))
  - No 'from' required when using a Dockerfile
    ([#201](https://github.com/fabric8io/docker-maven-plugin/issues/201))
  - Support for LABEL for build and run.

Note that since version 0.13.0 this plugin requires Docker API version v1.17 or later in order to support labels.

The watch feature has changed: Instead of using paramters like
`docker.watch` or `docker.watch.interval` for `docker:start` a
dedicated `docker:watch` has been introduced. Also the
`<run><watch>...</watch></run>` configuration has been moved one level
up so that `<watch>` and `<run>` are on the same level. Please refer
to the [manual](manual.md#watching-for-image-changes) for an in depth
explanation of the much enhanced watch functionality.

* **0.12.0**
  - Allow CMD and ENTRYPOINT with shell and exec arguments
    ([#130](https://github.com/fabric8io/docker-maven-plugin/issues/130))
    ([#149](https://github.com/fabric8io/docker-maven-plugin/issues/149))
  - Unix Socket support
    ([#179](https://github.com/fabric8io/docker-maven-plugin/issues/179))
  - Add a new parameter 'skipTags' for avoiding configured tagging of
    images
    ([#145](https://github.com/fabric8io/docker-maven-plugin/issues/145))
  - Break build if log check or URL check runs into a timeout
    ([#173](https://github.com/fabric8io/docker-maven-plugin/issues/173))

Please note that for consistencies sake `<command>` has been renamed
to `<cmd>` which contains inner elements to match better the
equivalent Dockerfile argument. The update should be trivial and easy
to spot since a build will croak immediately.

The old format

````xml
<build>
  <command>java -jar /server.jar</command>
</build>
````

becomes now

````xml
<build>
  <cmd>
    <exec>
      <arg>java</arg>
      <arg>-jar</arg>
      <arg>/server.jar</arg>
    </exec>
  </cmd>
</build>
````

or

````xml
<build>
  <cmd>
    <shell>java -jar /server.jar</shell>
  </cmd>
</build>
````

depending on whether you prefer the `exec` or `shell` form.

* **0.11.5**
  - Fix problem with http:// URLs when a CERT path is set
  - Fix warnings when parsing a pull response
  - Add a new parameter 'docker.follow' which makes a `docker:start`
    blocking until the CTRL-C is pressed
    ([#176](https://github.com/fabric8io/docker-maven-plugin/issues/176))
  - Add a `user` parameter to the assembly configuration so that the
    added files are created for this user
  - Fix problem when creating intermediate archive for collecting
    assembly files introduced with #139. The container can be now set
    with "mode" in the assembly configuration with the possible values
    `dir`, `tar`, `tgz` and `zip`
    ([#171](https://github.com/fabric8io/docker-maven-plugin/issues/171))
  - Workaround Docker problem when using an implicit registry
    `index.docker.io` when no registry is explicitly given.
  - Fixed references to docker hub in documentation
    ([#169](https://github.com/fabric8io/docker-maven-plugin/issues/169))
  - Fixed registry authentication lookup
    ([#146](https://github.com/fabric8io/docker-maven-plugin/issues/146))

* **0.11.4**
  - Fixed documentation for available properties
  - Changed property `docker.assembly.exportBase` to
    `docker.assembly.exportBaseDir`
    ([#164](https://github.com/fabric8io/docker-maven-plugin/issues/164))
  - Changed default behaviour of `exportBaseDir` (true if no base
    image used with `from`, false otherwise)
  - Fix log messages getting cut off in the build
    ([#163](https://github.com/fabric8io/docker-maven-plugin/issues/163))
  - Allow system properties to overwrite dynamic port mapping
    ([#161](https://github.com/fabric8io/docker-maven-plugin/issues/161))
  - Fix for empty authentication when pushing to registries
    ([#102](https://github.com/fabric8io/docker-maven-plugin/issues/102))
  - Added watch mode for images with `-Ddocker.watch`
    ([#141](https://github.com/fabric8io/docker-maven-plugin/issues/141))
  - Added support for inline assemblies (#157, #158)
  - Add support for variable substitution is environment declarations
    ([#137](https://github.com/fabric8io/docker-maven-plugin/issues/137))
  - Use Tar archive as intermediate container when creating image ([#139](https://github.com/fabric8io/docker-maven-plugin/issues/139))
  - Better error handling for Docker errors wrapped in JSON response
    only
    ([#167](https://github.com/fabric8io/docker-maven-plugin/issues/167))

* **0.11.3**
  - Add support for removeVolumes in `docker:stop` configuration
    ([#120](https://github.com/fabric8io/docker-maven-plugin/issues/120))
  - Add support for setting a custom maintainer in images
    ([#117](https://github.com/fabric8io/docker-maven-plugin/issues/117))
  - Allow containers to be named using
    `<namingStrategy>alias</namingStrategy>` when started
    ([#48](https://github.com/fabric8io/docker-maven-plugin/issues/48))
  - Add new global property 'docker.verbose' for switching verbose
    image build output
    ([#36](https://github.com/fabric8io/docker-maven-plugin/issues/36))
  - Add support for environment variables specified in a property file
    ([#128](https://github.com/fabric8io/docker-maven-plugin/issues/128))
  - Documentation improvements (#107, #121)
  - Allow to use a dockerFileDir without any assembly

* **0.11.2**
  - Fix maven parse error when specifying restart policy
    ([#99](https://github.com/fabric8io/docker-maven-plugin/issues/99))
  - Allow host names to be used in port bindings
    ([#101](https://github.com/fabric8io/docker-maven-plugin/issues/101))
  - Add support for tagging at build and push time
    ([#104](https://github.com/fabric8io/docker-maven-plugin/issues/104))
  - Use correct output dir during multi-project builds
    ([#97](https://github.com/fabric8io/docker-maven-plugin/issues/97))
  - `descriptor` and `descriptorRef` in the assembly configuration are
    now optional
    ([#66](https://github.com/fabric8io/docker-maven-plugin/issues/66))
  - Fix NPE when filtering enabled during assembly creation
    ([#82](https://github.com/fabric8io/docker-maven-plugin/issues/82))
  - Allow `${project.build.finalName}` to be overridden when using a
    pre-packaged assembly descriptor for artifacts
    ([#111](https://github.com/fabric8io/docker-maven-plugin/issues/111))

* **0.11.1**
  - Add support for binding UDP ports
    ([#83](https://github.com/fabric8io/docker-maven-plugin/issues/83))
  - "Entrypoint" supports now arguments
    ([#84](https://github.com/fabric8io/docker-maven-plugin/issues/84))
  - Fix basedir for multi module projects
    ([#89](https://github.com/fabric8io/docker-maven-plugin/issues/89))
  - Pull base images before building when "autoPull" is switched on
    (#76, #77, #88)
  - Fix for stopping containers without tag
    ([#86](https://github.com/fabric8io/docker-maven-plugin/issues/86))

* **0.11.0**
  - Add support for binding/exporting containers during startup
    ([#55](https://github.com/fabric8io/docker-maven-plugin/issues/55))
  - Provide better control of the build assembly configuration. In
    addition, the plugin will now search for assembly descriptors in
    `src/main/docker`. This default can be overridden via the global
    configuration option `sourceDirectory`.
  - An external `Dockerfile` can now be specified to build an image.
  - When "creating" containers they get now all host configuration
    instead of during "start". This is the default behaviour since
    v1.15 while the older variant where the host configuration is fed
    into the "start" call is deprecated and will go away.
  - Allow selecting the API version with the configuration
    "apiVersion".  Default and minimum API version is now "v1.15"
  - A registry can be specified as system property `docker.registry`
    or environment variable `DOCKER_REGISTRY`
    ([#26](https://github.com/fabric8io/docker-maven-plugin/issues/26))
  - Add new wait parameter `shutdown` which allows to specify the
    amount of time to wait between stopping a container and removing
    it ([#54](https://github.com/fabric8io/docker-maven-plugin/issues/54))

Please note, that the syntax for binding volumes from another
container has changed slightly in 0.10.6.  See
"[Volume binding](manual.md#volume-binding)" for details but in short:

````xml
<run>
  <volumes>
    <from>data</from>
    <from>fabric8/demo</from>
  </volumes>
....
</run>
````

becomes

````xml
<run>
  <volumes>
    <from>
      <image>data</image>
      <image>fabric8/demo</image>
    </from>
  </volumes>
....
</run>
````

The syntax for specifying the build assembly configuration has also
changed. See "[Build Assembly] (manual.md#build-assembly)" for details
but in short:

````xml
<build>
  ...
  <exportDir>/export</exportDir>
  <assemblyDescriptor>src/main/docker/assembly.xml</assemblyDescriptor>
</build>
````

becomes

````xml
<build>
  ...
  <assembly>
    <basedir>/export</basedir>
    <descriptor>assembly.xml</descriptor>
  </assembly>
</build>
````

* **0.10.5**
  - Add hooks for external configurations
  - Add property based configuration for images
    ([#42](https://github.com/fabric8io/docker-maven-plugin/issues/42))
  - Add new goal `docker:logs` for showing logs of configured
    containers
    ([#49](https://github.com/fabric8io/docker-maven-plugin/issues/49))
  - Support for showing logs during `docker:start`
    ([#8](https://github.com/fabric8io/docker-maven-plugin/issues/8))
  - Use `COPY` instead of `ADD` when putting a Maven assembly into the
    container
    ([#53](https://github.com/fabric8io/docker-maven-plugin/issues/53))
  - If `exportDir` is `/` then do not actually export (since it
    doesn't make much sense) (see #62)

* **0.10.4**
  - Restructured and updated documentation
  - Fixed push issue when using a private registry
    ([#40](https://github.com/fabric8io/docker-maven-plugin/issues/40))
  - Add support for binding to an arbitrary host IP
    ([#39](https://github.com/fabric8io/docker-maven-plugin/issues/39))

* **0.10.3**
  - Added "remove" goal for cleaning up images
  - Allow "stop" also as standalone goal for stopping all managed
    builds

* **0.10.2**
  - Support for SSL Authentication with Docker 1.3. Plugin will
    respect `DOCKER_CERT_PATH` with fallback to `~/.docker/`.  The
    plugin configuration `certPath` can be used, too and has the
    highest priority.
  - Getting rid of UniRest, using
    [Apache HttpComponents](http://hc.apache.org/) exclusively for
    contacting the Docker host.
  - Support for linking of containers (see the configuration in the
    [shootout-docker-maven](https://github.com/fabric8io/shootout-docker-maven/blob/master/pom.xml)
    POM) Images can be specified in any order, the plugin takes care
    of the right startup order when running containers.
  - Support for waiting on a container's log output before continuing

## 0.9.x Series

Original configuration syntax (as described in the old
[README](readme-0.9.x.md))

* **0.9.12**
  - Fixed push issue when using a private registry
    ([#40](https://github.com/fabric8io/docker-maven-plugin/issues/40))

* **0.9.11**
  - Support for SSL Authentication with Docker 1.3. Plugin will
    respect `DOCKER_CERT_PATH` with fallback to `~/.docker/`.  The
    plugin configuration `certPath` can be used, too and has the
    highest priority.


================================================
FILE: doc/ci-docs.sh
================================================
echo ===========================================
echo Deploying docker-maven-plugin documentation
echo ===========================================

mvn -Pdoc-html && \
mvn -Pdoc-pdf && \
git clone -b gh-pages git@github.com:fabric8io/docker-maven-plugin.git gh-pages && \
cp -rv target/generated-docs/* gh-pages/ && \
cd gh-pages && \
mv index.pdf docker-maven-plugin.pdf && \
git add --ignore-errors * && \
git commit -m "generated documentation" && \
git push origin gh-pages && \
cd .. && \
rm -rf gh-pages target


================================================
FILE: doc/examples.md
================================================
## Examples

This plugin comes with some commented examples in the `samples/` directory:

### Jolokia Demo

[data-jolokia](https://github.com/fabric8io/docker-maven-plugin/tree/master/samples/data-jolokia)
is a setup for testing the [Jolokia](http://www.jolokia.org) HTTP-JMX
bridge in a tomcat. It uses a Docker data container which is linked
into the Tomcat container and contains the WAR files to deploy. There
are two flavor of tests

* One with two image where a (almost naked) data container with the
  war file is created and then mounted into the server image during
  startup before the integration test.

* When using the profile `-Pmerge` then a single image with Tomcat and
  the dependent war files is created. During startup of a container
  from the created image, a deploy script will link over the war files
  into Tomat so that they are automatically deployed.
  
For running the tests call

```bash
# Use two ("data" and "server") connected containers
mvn clean install
# Use a single image with tomcat and data:
mvn -Pmerge clean install
# Use a property based configuration:
mvn -Pprops clean install
```

The sever used is by default Tomcat 7. This server can easily be
changed with the system properties `server.name` and
`server.version`. The following variants are available:

* For `server.name=tomcat` the `server.version` can be 3.3, 4.0, 5.5, 6.0, 7.0
  or 8.0
* For `server.name=jetty` the `server.version` can be 4, 5, 6, 7, 8 or 9

Example:

```bash
mvn -Dserver.name=jetty -Dserver.version=9 clean install
```

In addition to running the integration test with building images, starting containers, 
running tests and stopping containers one can also only start the containers:

```bash
mvn docker:start
```

In order to get the dynamically exposed port, use `docker ps`. You can connect to the 
Jolokia agent inside the container then with an URL like `http://localhost:http://localhost:49171/jolokia` to 
the Agent.

For stopping the server simply call

```bash
mvn docker:stop
```

### Cargo Demo

[cargo-jolokia](https://github.com/fabric8io/docker-maven-plugin/tree/master/samples/cargo-jolokia)
will use Docker to start a Tomcat 7 server with dynamic port mapping,
which is used for remote deployment via
[Cargo](https://codehaus-cargo.github.io/cargo/Maven2+plugin.html) and running the
integration tests.

### docker-maven-plugin Shootout

In order to help in the decision, which plugin to use, there is a
sample project
[rhuss/shootout-docker-maven](https://github.com/rhuss/shootout-docker-maven),
which has more complex sample project involving two images:

* Vanilla PostgreSQL 9 Image
* HTTP Request Logging Service
  - MicroService with embedded Tomcat
  - DB Schema is created during startup via [Flyway](http://flywaydb.org/)
* PostgreSQL container is connected via a Docker 'link'
* Simple integration test which exercises the service

The different plugins can be enabled with different Maven profiles,
the one for this plugin is called `fabric8io` (and the others `wouterd`,
`alexec` and `spotify`).

For more information please look over there.


================================================
FILE: doc/howto-release.md
================================================

# Release instructions

## Preparation

* Increase version numbers in the poms below samples/ (they are not automatically updated)

```
cd samples
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=0.15.4
```

* Run "update_issue_links.sh" in "doc/"
* Check into Git, push, create PR and apply

## Building and deploying

* Run the build over the fabric8 CD Pipeline 

or in the _classic_ way:

```
mvn -Dmaven.repo.local=/tmp/clean-repo -DdevelopmentVersion=0.23-SNAPSHOT -DreleaseVersion=0.23.0 -Dtag=v0.23.0 -Prelease release:prepare
mvn -Dmaven.repo.local=/tmp/clean-repo -DdevelopmentVersion=0.23-SNAPSHOT -DreleaseVersion=0.23.0 -Dtag=v0.23.0 -Prelease release:perform
```

and then push to Maven central manually via https://oss.sonatype.org/

## Update from upstream

```
git co master
git pull upstream master
git rebase upstream/master
```

## After the build

* Set sample version back to the snapshot version

```
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=0.15-SNAPSHOT
```

* Check-In and create PR

## Update documentation

* Update branch `dmp.fabric8.io` with the exact version of the plugin build and push it to upstream (https://github.com/fabric8io/docker-maven-plugin)

```
git fetch -u upstream --tags
git co dmp.fabric8.io
git merge v0.19.0
git push -u upstream dmp.fabric8.io
```

* The docs will be then build by `circleci.com`


================================================
FILE: doc/integration-tests.md
================================================

# Integration Testing

This document currently only holds some ideas of how and what to integration test this plugin

### Registry Handling

* Specify registry via environment variable, global configuration, as image configuration or with name
* Test that `autoPull` works for `docker:start`
* Check that push works with the registry. Also check, that no temporary docker images names (which needs to
  be created before pushing) are left over.

================================================
FILE: doc/intro.md
================================================
## Introduction 

It focuses on two major aspects:

* **Building** and **pushing** Docker images which contain build artifacts
* **Starting** and **stopping** Docker containers for integration
  testing and development 

Docker *images* are the central entity which can be configured. 
Containers, on the other hand, are more or less volatile. They are
created and destroyed on the fly from the configured images and are
completely managed internally.

### Building docker images

One purpose of this plugin is to create docker images holding the
actual application. This is done with the `docker:build` goal.  It
is easy to include build artifacts and their dependencies into an image. 
Therefore, this plugin uses the
[assembly descriptor format](http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html)
from the
[maven-assembly-plugin](http://maven.apache.org/plugins/maven-assembly-plugin/)
to specify the content which will be added from a sub-directory in the image 
(`/maven` by default). Images that are built with this plugin can be pushed 
to public or private Docker registries with `docker:push`.

### Running containers

With this plugin it is possible to run completely isolated integration
tests so you don't need to take care of shared resources. Ports can be
mapped dynamically and made available as Maven properties to your
integration test code. 

Multiple containers can be managed at once, which can be linked
together or share data via volumes. Containers are created and started
with the `docker:start` goal and stopped and destroyed with the
`docker:stop` goal. For integration tests, both goals are typically
bound to the `pre-integration-test` and `post-integration-test` phase,
respectively. It is recommended to use the 
[`maven-failsafe-plugin`](http://maven.apache.org/surefire/maven-failsafe-plugin/) 
for integration testing in order to stop the docker container even when
the tests fail.

For proper isolation, container exposed ports can be dynamically and
flexibly mapped to localhost ports. It is easy to specify a Maven
property which will be filled in with a dynamically assigned port
after a container has been started. This can then be used as
a parameter for integration tests to connect to the application.

### Configuration

The plugin configuration contains a *general part* and a list
of *image-specific* configurations, one for each image. 

The general part contains global configuration like the Docker URL or
the path to the SSL certificates for communication with the Docker Host.

Then, each specific image configuration has three parts:

* A general image part containing the image's name and alias.
* A `<build>` configuration specifying how images are built.
* A `<run>` configuration describing how containers should be created and started.

The `<build>` and `<run>` parts are optional and can be omitted.

Let's look at a plugin configuration example:

````xml
<configuration>
  <images>
    <image>
      <alias>service</alias>
      <name>fabric8/docker-demo:${project.version}</name>

      <build>
         <from>java:8</from>
         <assembly>
           <descriptor>docker-assembly.xml</descriptor>
         </assembly>
         <ports>
           <port>8080</port>
         </ports>
         <cmd>
            <shell>java -jar /maven/service.jar</shell>
         </cmd>
      </build>

      <run>
         <ports>
           <port>tomcat.port:8080</port>
         </ports>
         <wait>
           <http>
              <url>http://localhost:${tomcat.port}/access</url>
           </http>
           <time>10000</time>
         </wait>
         <links>
           <link>database:db</link>
         </links>
       </run>
    </image>

    <image>
      <alias>database</alias>
      <name>postgres:9</name>
      <run>
        <wait>
          <log>database system is ready to accept connections</log>
          <time>20000</time>
        </wait>
      </run>
    </image>
  </images>
</configuration>
````

Here, two images are specified. One is the official PostgreSQL 9 image from
Docker Hub, which internally is referenced as "*database*" (`<alias>`). It
only has a `<run>` section which declares that the startup should wait
until the given text pattern is matched in the log output. Next is a
"*service*" image, which is specified in the `<build>` section. It
creates an image which has artifacts and dependencies in the
`/maven` directory (and which are specified with an assembly
descriptor). Additionally it specifies the startup command for the
container, which in this example fires up a microservice from a jar
file copied over via the assembly descriptor. It also exposes
port 8080. In the `<run>` section this port is dynamically mapped to a
dynamically chosen port, and then assigned to the
Maven property `${tomcat.port}`. This property could be used, for example,
by an integration test to access this microservice. An important part is
the `<links>` section which indicates that the image with the alias of
"*database*" is linked into the "*service*" container, which can access
the internal ports in the usual Docker way (via environment variables
prefixed with `DB_`).

Images can be specified in any order and the plugin will take care of the
proper startup order (and will bail out if it detects circular
dependencies). 

### Other highlights

Some other highlights in random order (and not complete):

* Auto pulling of images (with a progress indicator)
* Waiting for a container to startup based on time, the reachability
  of an URL, or a pattern in the log output
* Support for SSL authentication (since Docker 1.3)
* Specification of encrypted registry passwords for push and pull in
  `~/.m2/settings.xml` (i.e., outside the `pom.xml`)
* Color output ;-)

### Why another Maven Plugin ?

If you search on GitHub you will find a whole cosmos of Maven Docker
plugins (As of November 2014: 12 (!) plugins which 4 actively maintained).
On the one hand, variety is a good thing, but on the other hand for
users it is hard to decide which one to choose. So, you might wonder
why you should choose this one.

There s a dedicated [shootout project](https://github.com/fabric8io/shootout-docker-maven)
which compares the four most active plugins. It contains a simple demo
project with a database and a microservice image, along with an integration
test. Each plugin is configured to create images and run the
integration test (if possible). Although it might be a bit biased, it can 
be useful for figuring out which plugin suits you best.

The high-level design goals and initial motivation for this plugin are:

* A flexible, **dynamic port mapping** from container to host
  ports so that truly isolated builds could be made. This should
  work on indirect setups with VMs like
  [boot2docker](https://github.com/boot2docker/boot2docker) or
  [docker-machine](https://docs.docker.com/machine/) for
  running on OS X/Windows.

* It should be possible to **pull images** on the fly to get
  self-contained and repeatable builds with the only requirement to
  have Docker installed.

* The configuration of the plugin should be **simple**, since developers
  don't want to be forced to dive into specific Docker details only to
  start a container. So, only a handful options should be exposed,
  which needs not necessarily map directly to docker config setup.

* There should be as **few dependencies** as possible for this plugin. So it
  does *not* use the Java Docker API
  [docker-java](https://github.com/docker-java/docker-java) which is
  external to docker and has a different lifecycle than Docker's
  [remote API](http://docs.docker.io/en/latest/reference/api/docker_remote_api/).
  Since this plugin needs only a small subset of the whole API,
  it is OK to do the REST calls directly. That way the plugin has
  to deal only with Docker peculiarities and not docker-java's as well.
  As a side-effect, it has fewer transitive dependencies.
  FYI: There are other Docker Java/Groovy client libraries out, which
  might be suitable for plugins like this:
  [fabric/fabric-docker-api](https://github.com/fabric8io/fabric8/tree/master/fabric/fabric-docker-api),
  [spotify/docker-client](https://github.com/spotify/docker-client)
  or
  [gesellix-docker/docker-client](https://github.com/gesellix-docker/docker-client).
  Can you see the pattern ;-) ?
  
So, final words: Enjoy this plugin, and please use the
[issue tracker](https://github.com/fabric8io/docker-maven-plugin/issues)
for anything that hurts, or when you have a wish list. 



================================================
FILE: doc/migration-0.9.x.md
================================================
## Migration Guide

This recipes gives you some hint and help for migrating from the old
(0.9.x) configuration syntax to the new one (0.10.x and later).

If there are any issue when doing the migration or you do need some
help, please raise an
[issue](https://github.com/fabric8io/docker-maven-plugin/issues) with your
original configuration and you will get some help for the migration.

The biggest change was support for multiple images. The whole story
about the change can be found in this
[blog post](https://ro14nd.de/Docker-Maven-Plugin-Rewrite/). In the
old version there was a single configurtion which resulted in one or
two images, depending on the `mergeData` property.

In general now all build aspects are collected now below a `<build>`
section and all runtime aspects in a `<run>` section for each image. 

Typically it should be clear what configuration from the original,
flat configuration list is a runtime or build aspect, here are some
hints, depending on whether data merging is on or off (property
`mergeData`) 

* `image` becomes the name of an image with a `<run>` configuration
  (non-merging) or the base image within a `<from>`
  element in the `<build>` section (merging). 
* `dataImage` is used for the name of the data image (non-merging)
  with only a `<build>` section or the name of the single image with
  both `<run>` and `<build>` section when merging is used.

The [Examples](#examples) below show sample migrations for these two
different situations and make this transformation clearer.

### Wait configuration

When waiting for certain conditions during startup, in the old format
there where dedicated configuration params for each possible
conditions. Now they are collected within a subelement `<wait>` which
is part of a `<run>` configuration.

For example:

```xml
<waitHttp>http://localhost:${port}/jolokia</waitHttp>
<wait>10000</wait>
```

becomes 

```
<wait>
  <http>
    <url>http://localhost:${port}/jolokia</url>
  </http>
  <time>10000</time>
</wait>
```

In addition the new syntax support also waiting on a log outpbut
(`<log>`). 

### Lifecycle binding

The old version of the plugin combined some task: E.g. if you used
`docker:start` or `docker:pull` a `docker:build` was done
implicitely. In order to make stuff more explicite and easier to
understand this is not the case anymore. So, when you bind to a
lifecycle phase you have to add all steps explicitely:

```xml
<executions>
  <execution>
    <id>start</id>
    <phase>pre-integration-test</phase>
    <goals>
      <goal>build</goal>
      <goal>start</goal>
    </goals>
  </execution>
  ...
</executions>
``` 

### Examples

The migration is different depending on whether you use `mergeData`
or not. 

## Non merged images

When `mergeData` was false, two images where created: One holding the
data and one for the server which is connected to the data container
during startup. So, the following old configuration 

```xml
<configuration>
  <mergeData>false</mergeData>
  <image>consol/tomcat-7.0</image>
  <dataImage>jolokia/data</dataImage>
  <assemblyDescriptor>src/main/docker-assembly.xml</assemblyDescriptor>
  <env>
    <CATALINA_OPTS>-Xmx32m</CATALINA_OPTS>
  </env>
  <ports>
    <port>jolokia.port:8080</port>
  </ports>
  <waitHttp>http://localhost:${jolokia.port}/jolokia</waitHttp>
  <wait>10000</wait>
</configuration>
```
becomes in the new syntax a configuration for two images

```xml
<configuration>
  <images>
    <image>
      <alias>server</alias>
      <name>consol/tomcat-7.0</name>
      <run>
        <volumes>
          <from>data</from>
        </volumes>
        <env>
          <CATALINA_OPTS>-Xmx32m</CATALINA_OPTS>
        </env>
        <ports>
          <port>jolokia.port:8080</port>
        </ports>
        <wait>
          <http>
            <url>http://localhost:${jolokia.port}/jolokia</url>
          </http>
          <time>10000</time>
        </wait>
      </run>
    </image>
    <image>
      <alias>data</alias>
      <name>jolokia/data</name>
      <build>
        <assemblyDescriptor>src/main/docker-assembly.xml</assemblyDescriptor>
      </build>
    </image>
  </images>
</configuration>
```

Please note, that one image only has a `<run>` configuration, the
data image has a `<build>` section only. They both are linked together
during startup of the `server` container via `<volumes>` (where the
symbolic name of the data container can be used). 

## Merged images

When  `mergeData` was true, only a single image was created. So
the original configuration which looks like

```xml
<configuration>
  <mergeData>true</mergeData>
  <image>consol/tomcat-7.0</image>
  <dataImage>jolokia/data</dataImage>
  <assemblyDescriptor>src/main/docker-assembly.xml</assemblyDescriptor>
  <env>
    <CATALINA_OPTS>-Xmx32m</CATALINA_OPTS>
  </env>
  <ports>
    <port>jolokia.port:8080</port>
  </ports>
  <waitHttp>http://localhost:${jolokia.port}/jolokia</waitHttp>
  <wait>10000</wait>
</configuration>
```

can be directly translated to a single image configuration

```xml
<configuration>
  <images>
    <image>
      <name>jolokia/data</name>
      <build>
        <from>consol/tomcat-7.0</from>
        <assemblyDescriptor>src/main/docker-assembly.xml</assemblyDescriptor>
      </build>
      <run>
        <env>
          <CATALINA_OPTS>-Xmx32m</CATALINA_OPTS>
        </env>
        <ports>
          <port>jolokia.port:8080</port>
        </ports>
        <wait>
          <http>
            <url>http://localhost:${jolokia.port}/jolokia</url>
          </http>
          <time>10000</time>
        </wait>
      </run>
    </image>
  </images>
</configuration>
```

### Misc renamings

Some properties where renamed for consistencies sake:

* `url` to `dockerHost` and the corresponding system property
  `docker.url` to `docker.host`
* `color` to `useColor` 


================================================
FILE: doc/readme-0.9.x.md
================================================
# docker-maven-plugin 0.9.x

[![endorse](http://api.coderwall.com/fabric8io/endorsecount.png)](http://coderwall.com/fabric8io)
[![Build Status](https://secure.travis-ci.org/fabric8io/docker-maven-plugin.png)](http://travis-ci.org/fabric8io/docker-maven-plugin)
[![Flattr](http://api.flattr.com/button/flattr-badge-large.png)](http://flattr.com/thing/73919/Jolokia-JMX-on-Capsaicin)

This is a Maven plugin for managing Docker images and containers from within Maven builds. 

> **This document describes version 0.9.x of this plugin. Starting
> with version 0.10.1 a new configuration syntax was introduced which
> as documented in the [README](../README.md). See the
> [CHANGELOG](changelog.md) for more details about the differences and
> this [blog post](http://ro14nd.de/Docker-Maven-Plugin-Rewrite/) for
> the motivation behind this restructuring. The 0.9.x version is
> deprecated and won't be updated in the futuer. For a migration to
> the new syntax please refer to this [guide](migration-0.9.x.md)**

With this plugin it is possible to run completely isolated integration tests so you don't need to take care of shared resources. Ports can be mapped dynamically and made available as Maven properties. 

Build artifacts and dependencies can be accessed from within 
running containers, so that a file based deployment is easily possible and there is no need to use dedicated deployment support from plugins like [Cargo](https://codehaus-cargo.github.io/cargo/Maven2+plugin.html).
 
This plugin's **highlights** are:

* Configurable port mapping
* Assigning dynamically selected host ports to Maven variables
* Pulling of images (with progress indicator) if not yet downloaded
* Optional waiting on a successful HTTP ping to the container
* On-the-fly creation of Docker data images and containers with Maven artifacts and dependencies linked or merged into the containers under test.
* Pushing data images to a registry
* Setting of environment variables when creating the container
* Support for SSL authentication (since Docker 1.3)
* Color output ;-)

This plugin is available from Maven central and can be connected to pre- and post-integration phase as seen below.
Please refer also to the examples provided in the `samples/` directory.

````xml
<plugin>
  <groupId>org.jolokia</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>0.9.11</version>

  <configuration>
     <!-- For possible options, see below -->
  </configuration>

  <!-- Connect start/stop to pre- and
       post-integration-test phase, respectively -->
  <executions>
    <execution>
       <id>start</id>
       <phase>pre-integration-test</phase>
       <goals>
         <goal>start</goal>
       </goals>
    </execution>
    <execution>
       <id>stop</id>
       <phase>post-integration-test</phase>
       <goals>
         <goal>stop</goal>
      </goals>
    </execution>
  </executions>
</plugin>
````

## Maven Goals

### `docker:start`

Creates and starts a specified docker container with the additional possibility to link artifacts and dependencies to this 
  container, or, if `mergeData` is set to `true`, create a new image based on the given image and the assembly artifacts specified. 

#### Configuration

| Parameter    | Descriptions                                            | Property       | Default                 |
| ------------ | ------------------------------------------------------- | -------------- | ----------------------- |
| **url**      | URL to the docker daemon                                | `docker.url`   | `http://localhost:2375` |
| **image**    | Name of the docker image (e.g. `jolokia/tomcat:7.0.52`) | `docker.image` | none, required          |
| **ports**    | List of ports to be mapped statically or dynamically.   |                |                         |
| **env**      | Additional environment variables used when creating a container |        |                         | 
| **autoPull** | Set to `true` if an yet unloaded image should be automatically pulled | `docker.autoPull` | `true`      |
| **command**  | Command to execute in the docker container              |`docker.command`|                         |
| **assemblyDescriptor**  | Path to the data container assembly descriptor. See below for an explanation and example.              |                |                         |
| **assemblyDescriptorRef** | Predefined assemblies which can be directly used. For possible values, see below. | | |
| **mergeData** | If set to `true` create a new image based on the configured image and containing the assembly as described with `assemblyDescriptor` or `assemblyDescriptorRef` | `docker.mergeData` | `false` |
| **dataBaseImage** | Base for the data image (used only when `mergeData` is false) | `docker.baseImage` | `busybox:latest` |
| **dataImage** | Name to use for the created data image | `docker.dataImage` | `<group>/<artefact>:<version>` |
| **dataExportDir** | Name of the volume which gets exported | `docker.dataExportDir` | `/maven` |
| **authConfig** | Authentication configuration when autopulling images. See below for details. | | |
| **portPropertyFile** | Path to a file where dynamically mapped ports are written to |   |                         |
| **wait**     | Ramp up time in milliseconds                            | `docker.wait`  |                         |
| **waitHttp** | Wait until this URL is reachable with an HTTP HEAD request. Dynamic port variables can be given, too | `docker.waitHttp` | |
| **color**    | Set to `true` for colored output                        | `docker.color` | `true` if TTY connected  |
| **skip**     | If set to `true` skip the execution of this goal        | `docker.skip`  |                          |

### `docker:stop`

Stops and removes a docker container. 

#### Configuration

| Parameter  | Descriptions                     | Property       | Default                 |
| ---------- | -------------------------------- | -------------- | ----------------------- |
| **url**    | URL to the docker daemon         | `docker.url`   | `http://localhost:4243` |
| **image** | Which image to stop. All containers for this named image are stopped | `docker.image` |  |
| **keepContainer** | Set to `true` for not automatically removing the container after stopping it. | `docker.keepContainer` | |
| **keepRunning** | Set to `true` for not stopping the container even when this goals runs. | `docker.keepRunning` | `false` |
| **keepData**  | Keep the data container and image after the build if set to `true` | `docker.keepData` |  `false`                       |
| **color**  | Set to `true` for colored output | `docker.color` | `true` if TTY connected |
| **skip**     | If set to `true` skip the execution of this goal        | `docker.skip`  |                          |

### `docker:push`

Push a data image to the registry. The data image is the same created during the `start` goal. See below for more information about how the data image is created. The registry to push is by 
default `registry.hub.docker.io` but can be specified as part of the `dataImage` name the Docker way. E.g. `docker.test.org:5000/data:1.5` will push the repository `data` with tag `1.5` to 
the registry `docker.test.org` at port `5000`. Security information (i.e. user and password) can be specified in multiple ways as described in an extra section. 

#### Configuration

| Parameter    | Descriptions                                            | Property       | Default                 |
| ------------ | ------------------------------------------------------- | -------------- | ----------------------- |
| **url**      | URL to the docker daemon                                | `docker.url`   | `http://localhost:2375` |
| **image**    | Name of the docker base image (e.g. `consol/tomcat:7.0.52`) | `docker.image` | none         |
| **autoPull** | Set to `true` if an yet unloaded image should be automatically pulled | `docker.autoPull` | `true`      |
| **assemblyDescriptor**  | Path to the data container assembly descriptor. See below for an explanation and example               |                |                         |
| **assemblyDescriptorRef** | Predefined assemblies which can be directly used. Possible values are given below | | |
| **mergeData** | If set to `true` create a new image based on the configured image and containing the assembly as described with `assemblyDescriptor` or `assemblyDescriptorRef` | `docker.mergeData` | `false` |
| **dataBaseImage** | Base for the data image (used only when `mergeData` is false) | `docker.baseImage` | `busybox:latest` |
| **dataImage** | Name to use for the created data image | `docker.dataImage` | `<group>/<artefact>:<version>` |
| **dataExportDir** | Name of the volume which gets exported | `docker.dataExportDir` | `/maven` |
| **keepData**  | Keep the data image after the build if set to `true` | `docker.keepData` |  `true`                       |
| **authConfig** | Authentication configuration when pushing images. See below for details. | | |
| **color**    | Set to `true` for colored output                        | `docker.color` | `true` if TTY connected  |
| **skip**     | If set to `true` skip the execution of this goal        | `docker.skip`  |                          |

### `docker:build`

Build a data image without pushing. It works essentially the same as `docker:push` but does not push to a registry
and does not delete the image afterwards. 

#### Configuration

| Parameter    | Descriptions                                            | Property       | Default                 |
| ------------ | ------------------------------------------------------- | -------------- | ----------------------- |
| **url**      | URL to the docker daemon                                | `docker.url`   | `http://localhost:2375` |
| **image**    | Name of the docker base image (e.g. `consol/tomcat:7.0.52`) | `docker.image` | none         |
| **autoPull** | Set to `true` if an yet unloaded base image should be automatically pulled | `docker.autoPull` | `true`      |
| **assemblyDescriptor**  | Path to the data container assembly descriptor. See below for an explanation and example               |                |                         |
| **assemblyDescriptorRef** | Predefined assemblies which can be directly used. Possible values are given below | | |
| **mergeData** | If set to `true` create a new image based on the configured image and containing the assembly as described with `assemblyDescriptor` or `assemblyDescriptorRef` | `docker.mergeData` | `false` |
| **dataBaseImage** | Base for the data image (used only when `mergeData` is false) | `docker.baseImage` | `busybox:latest` |
| **dataImage** | Name to use for the created data image | `docker.dataImage` | `<group>/<artefact>:<version>` |
| **dataExportDir** | Name of the volume which gets exported | `docker.dataExportDir` | `/maven` |
| **ports**    | List of ports to be exposed                             |                |  | 
| **env**      | List of environment variables to use for building       |                |  | 
| **color**    | Set to `true` for colored output                        | `docker.color` | `true` if TTY connected  |
| **skip**     | If set to `true` skip the execution of this goal        | `docker.skip`  |                          |

## Dynamic Port mapping

For the `start` goal, container port mapping may be configured using a `ports` declaration.

```xml
<ports>
  <port>18080:8080</port>
  <port>host.port:80</port>
<ports>
```

A `port` stanza may take one of two forms:
* A tuple consisting of two numeric values separated by a `:`. This form will result in an explicit mapping between the docker host and the corresponding port inside the container. In the above example, port 18080 would be exposed on the docker host and mapped to port 8080 in the running container.
* A tuple consisting of a string and a numeric value separated by a `:`. In this form, the string portion of the tuple will correspond to a Maven property. If the property is undefined when the `start` task executes, a port will be dynamically selected by Docker in the range 49000 ... 49900 and assigned to the property which may then be used later in the same POM file. If the property exists and has a numeric value, that value will be used as the exposed port on the docker host as in the previous form. In the above example, the docker service will elect a new port and assign the value to the property `host.port` which may then later be used in a property expression similar to `<value>${host.port}</value>`. This can be used to pin a port from the outside when doing some initial testing similar to:

    mvn -Dhost.port=10080 docker:start

Another useful configuration option is `portPropertyFile` with which a file can be specified to which the real port
mapping is written after all dynamic ports has been resolved. The keys of this property file are the variable names,
the values are the dynamically assigned host ports. This property file might be useful together with other Maven
plugins which already resolved their Maven variables earlier in the lifecycle than this plugin so that the port variables
might not be available to them.

## Setting environment variables

When creating a container one or more environment variables can be set via configuration with the `env` parameter
 
```xml
<env>
  <JAVA_HOME>/opt/jdk8</JAVA_HOME>
  <CATALINA_OPTS>-Djava.security.egd=file:/dev/./urandom</CATALINA_OPTS>
</env>
```

If you put this configuration into profiles you can easily create various test variants with a single image (e.g. by 
switching the JDK or whatever).

## Getting your assembly into the container

With using the `assemblyDescriptor` or `assemblyDescriptorRef` option it is possible to bring local files, artifacts and dependencies into the running Docker container. This works as follows:

* `assemblyDescriptor` points to a file describing the data to assemble. It has the same format as for creating assemblies with the [maven-assembly-plugin](http://maven.apache.org/plugins/maven-assembly-plugin/) , with some restrictions (see below).
* Alternatively `assemblyDescriptorRef` can be used with the name of a predefined assembly descriptor. See below for possible values.
* This plugin will create the assembly and create a Docker image on the fly which exports the assembly below a directory `/maven`. Typically this will be an extra image, but if the configuration parameter `mergeData` is set then the image which was configured for the `start` goal is used as a base image so that the data and e.g. application server are contained in the same image. This is useful for distributing a complete image where artifacts and the server are baked together.
* From this image a (data) container is created and the 'real' container is started with a `volumesFrom` option pointing to this data container (if `mergeData` is not used).
* That way, the container started has access to all the data created from the directory `/maven/` within the container.
* The container command can check for the existence of this directory and deploy everything within this directory.

Let's have a look at an example. In this case, we are deploying a war-dependency into a Tomcat container. The assembly descriptor `src/main/docker-assembly.xml` option may look like

````xml
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 
                        http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <dependencySets>
    <dependencySet>
      <includes>
        <include>org.jolokia:jolokia-war</include>
      </includes>
      <outputDirectory>.</outputDirectory>
      <outputFileNameMapping>jolokia.war</outputFileNameMapping>
    </dependencySet>
</assembly>
````

Then you will end up with a data container which contains with a file `/maven/jolokia.war` which is mirrored into the main container.

The plugin configuration could look like

````xml
<plugin>
    <groupId>org.jolokia</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    ....
    <configuration>
      <image>jolokia/tomcat-7.0</image>
      <assemblyDescriptor>src/main/docker-assembly.xml</assemblyDescriptor>
      ...
    </configuration>
</plugin>
````

The image `jolokia/tomcat-7.0` is a [trusted build](https://github.com/fabric8io/jolokia-it/tree/master/docker/tomcat/7.0) available from the central docker registry which uses a command `deploy-and-run.sh` that looks like this:

````bash
#!/bin/sh

DIR=${DEPLOY_DIR:-/maven}
echo "Checking *.war in $DIR"
if [ -d $DIR ]; then
  for i in $DIR/*.war; do
     file=$(basename $i)
     echo "Linking $i --> /opt/tomcat/webapps/$file"
     ln -s $i /opt/tomcat/webapps/$file
  done
fi
/opt/tomcat/bin/catalina.sh run
````

Before starting tomcat, this script will link every .war file it finds in `/maven` to `/opt/tomcat/webapps` which effectively will deploy them. 

Alternatively, the parameter `mergeData` could have been set to `true` in the plugin configuration. In this case no separate data image is created but an image which is based on the specified image (`jolokia/tomcat-7.0` in this example) and the assembly are directly available from `/maven`. This has the advantage that only a single image needs to be pushed containing  both, the created artifact and application server.

It is really that easy to deploy your artifacts. And it's fast (less than 10s for starting, deploying, testing (1 test) and stopping the container on my 4years old MBP using boot2docker).

### Assembly Descriptor

The assembly descriptor has the same [format](http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html) as the the maven-assembly-plugin with the following exceptions:

* `<formats>` are ignored, the assembly will always use a directory when preparing the data container (i.e. the format is fixed to `dir`)
* The `<id>` is ignored since only a single assembly descriptor is used (no need to distinguish multiple descriptors)

This `docker-maven-plugin` comes with some predefined assembly descriptors which can be used with `assemblyDescritproRef`:

* **artifact-with-dependencies** will copy your project's artifact and all its dependencies
* **artifact** will copy only the project's artifact but no dependencies.
* **project** will copy over the whole Maven project but with out `target/` directory.
* **rootWar** will copy the artifact as `ROOT.war` to the exposed directory. I.e. Tomcat will then deploy the war under the root context.

## Cleanup

Various configuration parameters of this plugin are available for cleaning up after a build:

* `keepRunning` specifies that the container should not be stopped after the build. Obviously, the container and any data image created will be left alone as well. This option is especially useful when given as command line option `-Ddocker.keepRunning` for doing some debugging or developing integration tests.

* `keepContainer` tells the plugin to not remove the container created from the image after the build (the container is stopped, though). If a merged container was created via the option `mergeData` then this container will remain as well as the on-the-fly created image this container belongs to. This is useful for post-mortem analysis of the container by e.g. looking at the logs. This option can be switched on with `-Ddocker.keepContainer`. If a separate data container is used, this data container and its image will stay as well.

* `keepData` finally can be used to keep only the data container, but the other container should be be removed. This option has only an effect if `keepContainer` is `false`. That way, the created artifacts can be kept even after the build.

## Authentication

When pulling (via the `autoPull` mode of `docker:start` and `docker:push`) or pushing image, it might be necessary to authenticate against a Docker registry.  

There are three different ways for providing credentials:

* Using a `<authConfig>` section in the plugin configuration with `<username>` and `<password>` elements.
* Providing system properties `docker.username` and `docker.password` from the outside
* Using a `<server>` configuration in the the `~/.m2/settings.xml` settings

Using the username and password directly in the `pom.xml` is not recommended since this is widely visible. This is easiest and transparent way, though. Using an `<authConfig>` is straight forward:

````xml
<plugin>
  <configuration>
     <image>consol/tomcat-7.0</image>
     ...
     <authConfig>
         <username>jolokia</username>
         <password>s!cr!t</password>
     </authConfig>
  </configuration>
</plugin>
````

The system property provided credentials are a good compromise when using CI servers like Jenkins. You simply provide the credentials from the outside:

	mvn -Ddocker.username=jolokia -Ddocker.password=s!cr!t docker:push

The most secure and also the most *mavenish* way is to add a server to the Maven settings file `~/.m2/settings.xml`: 

````xml
<servers>
  <server>
    <id>registry.hub.docker.io</id>
    <username>jolokia</username>
    <password>s!cr!t</password>
  </server>
  ....
</servers>
````

The server id must specify the registry to push to/pull from, which by default is central index `registry.hub.docker.io`. Here you should add you docker.io account for your repositories.

### Password encryption

Regardless which mode you choose you can encrypt password as described in the [Maven documentation](http://maven.apache.org/guides/mini/guide-encryption.html). Assuming that you have setup a *master password* in `~/.m2/security-settings.xml` you can create easily encrypted passwords:

````bash
	$ mvn --encrypt-password
	Password:
	{QJ6wvuEfacMHklqsmrtrn1/ClOLqLm8hB7yUL23KOKo=}
````

This password then can be used in `authConfig`, `docker.password` and/or the `<server>` setting configuration. However, putting an encrypted password into `authConfig` in the `pom.xml` doesn't make much sense, since this password is encrypted with an individual master password.

## SSL with keys and certificates

The plugin can communicate with the Docker Host via SSL, too. This is the default now for Docker 1.3 (and Boot2Docker). 
SSL is switched on if the port used is `2376` which is the default, IANA registered SSL port of the Docker host 
(and plain HTTP for `2375`). The directory holding `ca.pem`, `key.pem` and `cert.pem` can be configured with the
configuration parameter `certPath`. Alternatively, the environment variable `DOCKER_CERT_PATH` is evaluated and finally 
`~/.docker` is used as the last fallback.

## Examples

This plugin comes with some commented examples in the `samples/` directory:

* [data-jolokia-demo](https://github.com/fabric8io/docker-maven-plugin/tree/master/samples/data-jolokia-demo) is a setup for testing the [Jolokia](http://www.jolokia.org) HTTP-JMX bridge in a tomcat. It uses a Docker data container which is linked into the Tomcat container and contains the WAR files to deply
* [cargo-jolokia-demo](https://github.com/fabric8io/docker-maven-plugin/tree/master/samples/cargo-jolokia-demo) is the same as above except that Jolokia gets deployed via [Cargo](https://codehaus-cargo.github.io/cargo/Maven2+plugin.html)

For a complete example please refer to `samples/data-jolokia-demo/pom.xml`.

In order to prove, that self contained builds are not a fiction, you might convince yourself by trying out this (on a UN*X like system):

````bash
# Move away your local maven repository for a moment
cd ~/.m2/
mv repository repository.bak

# Fetch docker-maven-plugin
cd /tmp/
git clone https://github.com/fabric8io/docker-maven-plugin.git
cd docker-maven-plugin/

# Install plugin
# (This is only needed until the plugin makes it to maven central)
mvn install

# Goto the sample
cd samples/data-jolokia-demo

# Run the integration test
mvn verify

# Use a 'merged' data image
mvn -Pmerge-data verify

# Push the data image
mvn docker:push
 
# Please note, that first it will take some time to fetch the image
# from docker.io. The next time running it will be much faster. 

# Restore back you .m2 repo
cd ~/.m2
mv repository /tmp/
mv repository.bak repository
```` 

## Misc

* [Script](https://gist.github.com/deinspanjer/9215467) for setting up NAT forwarding rules when using [boot2docker](https://github.com/boot2docker/boot2docker)
on OS X

* It is recommended to use the `maven-failsafe-plugin` for integration testing in order to
stop the docker container even when the tests are failing.

## Why another docker-maven-plugin ? 

Spring feelings in 2014 seems to be quite fertile for the Java crowd's
Docker awareness
;-). [Not only I](https://github.com/bibryam/docker-maven-plugin/issues/1)
counted ~~5~~ 10 [maven-docker-plugins](https://github.com/search?q=docker-maven-plugin)
on GitHub as of ~~April~~ July 2014, tendency increasing. It seems, that all
of them have a slightly different focus, but all of them can do the
most important tasks: Starting and stopping containers. 

So you might wonder, why I started this plugin if there were already
quite some out here ?

The reason is quite simple: I didn't knew them when I started and if
you look at the commit history you will see that they all started
their life roughly at the same time (March 2014).

I expect there will be some settling soon and even some merging of
efforts which I would highly appreciate and support.

For what it's worth, here are some of my motivations for this plugin
and what I want to achieve:

* I needed a flexible, **dynamic port mapping** from container to host
  ports so that truly isolated build can be achieved. This should
  work on indirect setups with VMs like
  [boot2docker](https://github.com/boot2docker/boot2docker) for
  running on OS X.
  
* It should be possible to **pull images** on the fly to get
  self-contained and repeatable builds with the only requirement to
  have docker installed. 
  
* The configuration of the plugin should be **simple** since usually
  developers don't want to dive into specific Docker details only to
  start a container. So, only a handful options should be exposed
  which needs not necessarily map directly to docker config setup.
  
* The plugin should play nicely with
  [Cargo](https://codehaus-cargo.github.io/cargo/Maven2+plugin.html) so that deployments into
  containers can be easy. 
  
* I want as **less dependencies** as possible for this plugin. So I
  decided to *not* use the
  Java Docker API [docker-java](https://github.com/docker-java/docker-java) which is
  external to docker and has a different lifecycle than Docker's
  [remote API](http://docs.docker.io/en/latest/reference/api/docker_remote_api/). 
  That is probably the biggest difference to the other
  docker-maven-plugins since AFAIK they all rely on this API. Since
  for this plugin I really need only a small subset of the whole API,
  I think it is ok to do the REST calls directly. That way I only have
  to deal with Docker peculiarities and not also with docker-java's
  one. As a side effect this plugin has less transitive dependencies.
  FYI: There is now yet another Docker Java client library out, which
  might be used for plugins like this, too:
  [fabric-docker-api](https://github.com/fabric8io/fabric8/tree/master/fabric/fabric-docker-api). (Just
  in case somebody wants to write yet another plugin ;-)

In the meantime, enjoy this plugin, and please use the
[issue tracker](https://github.com/fabric8io/docker-maven-plugin/issues) 
for anything what hurts.



================================================
FILE: doc/update_issue_links.sh
================================================
#!/bin/sh
perl -i -p -e 's|\(\s*#(\d+)\s*\)|([#$1](https://github.com/fabric8io/docker-maven-plugin/issues/$1))|g' changelog.md


================================================
FILE: it/README.md
================================================
## docker-maven-plugin examples

This directory holds various examples for the usage of the docker-maven
plugin. It can be used as starting point for your own projects.

The examples are

* **jolokia-integration-test** : The same integration test for [Jolokia](http://www.jolokia.org)
  in various way for defining it
* **net** : Usage of various `net` modes (`bridge`, `none`, `host`, `container` and custom networks)

## Backlog

* **base-layer** : Dependencies are put in a separate base layer
* **multiple-docker-hosts** : Usage of multiple docker hosts


================================================
FILE: it/docker-compose/pom.xml
================================================
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Integration test demo which makes some small tests for Jolokia

  Call it with: 'mvn verify'

  The test does the following:

  * Creates a Docker data container with 'jolokia.war' and 'jolokia-it.war' as described in
    assembly descriptor src/main/docker-assembly.xml
  * Starts (and optionally pull) the jolokia/tomcat-7.0 container with the data container linked to it
  * Waits until Tomcat is up (i.e. until it is reachable via an HTTP request)
  * Runs an integration test via maven-failsafe-plugin, using rest-assured for accessing the deployed app.
  * Prints out some version information about the contaner running (in order prove that's not a fake ;-)
  * Stops and removes the containers.

  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-docker-compose</artifactId>
  <version>0.29-SNAPSHOT</version>

  <url>http://www.jolokia.org</url>

  <properties>
    <server.version>7</server.version>
    <server.name>tomcat</server.name>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.jolokia</groupId>
      <artifactId>jolokia-war</artifactId>
      <version>1.3.5</version>
      <type>war</type>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>build</id>
            <phase>install</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
          <execution>
            <id>start</id>
            <phase>install</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>install</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <images>
            <image>
            <alias>jolokia-war</alias>
              <!-- Data image containing jolokia.war -->
              <name>${project.groupId}/${project.artifactId}:latest</name>
              <!-- <build> the image-->
              <build>
                <assembly>
                  <inline>
                    <id>jolokia</id>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.jolokia:jolokia-war</include>
                        </includes>
                        <outputDirectory>.</outputDirectory>
                        <outputFileNameMapping>jolokia.war</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
              <!-- The <run> part is taken from compose -->
              <external>
                <type>compose</type>
              </external>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/docker-compose/src/main/docker/Dockerfile
================================================
FROM busybox:latest
VOLUME ["/maven"]
COPY j4p.war /maven/


================================================
FILE: it/docker-compose/src/main/docker/docker-compose.yml
================================================
version: "2"
services:
  jolokia-war:
    labels:
      "dmp.type": "example"
      "dmp.value": "100$$"
  tomcat:
    image: "fabric8/tomcat-7:latest"
    ports:
      - "8080:8080"
    environment:
      CATALINA_OPTS: "-Xmx32m"
      AB_OFF: "1"
    ulimits:
      memlock:
        hard: 2048
        soft: 1024
    volumes_from:
      - jolokia-war

================================================
FILE: it/dockerfile/README.md
================================================
## d-m-p sample using a Dockerfile

This example shows how to use docker-maven-plugin together with a Dockerfile. 
It is a simple `HelloWorld` servlet running on top of Jetty at the root context.
 
The [Dockerfile](src/main/docker/Dockerfile) is located is `src/main/docker`. 
Please note how the assembly is added using the directory `maven` which will be created on the fly by this plugin when an `<assembly>` is specified. 
 
To build and start a Jetty container with a mapped port at 8080 on the Docker host use

```
mvn package docker:build docker:run
```

================================================
FILE: it/dockerfile/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <!--
  Simple sample program including Java code.

  This helloworld exactly has been taken over mostly from https://github.com/arun-gupta/docker-java-sample.git
-->

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dockerfile</artifactId>
  <version>0.29-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>dmp-sample-dockerfile</name>

  <properties>
    <file>welcome.txt</file>
    <base>jetty</base>
    <project.artifactId>${project.artifactId}</project.artifactId>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>build</id>
            <phase>install</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
          <execution>
            <id>start</id>
            <phase>install</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>install</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <images>
            <image>
              <name>fabric8:dmp-sample-dockerfile</name>
              <alias>dockerfile</alias>
              <build>
                <!-- filter>@</filter-->
                <contextDir>${project.basedir}/src/main/docker</contextDir>
                <assembly>
                  <descriptorRef>rootWar</descriptorRef>
                </assembly>
              </build>
              <run>
                <ports>
                  <port>8080:8080</port>
                </ports>
              </run>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


================================================
FILE: it/dockerfile/src/main/docker/Dockerfile
================================================
# Sample Dockerfile for use with the Docker file mode
FROM ${base}

ENV SAMPLE_BUILD_MODE=dockerfile
LABEL PROJECT_NAME=hello-world \
      PROJECT=${project.artifactId}

# Arbitrary files can be added
ADD ${file} /

# In maven/ the files as specified in the <assembly> section is stored
# and need to be added manually
COPY maven/ /var/lib/jetty/webapps/

EXPOSE 8080


================================================
FILE: it/dockerfile/src/main/docker/welcome.txt
================================================
Hello World !!!

================================================
FILE: it/dockerfile/src/main/java/io/fabric8/dmp/samples/dockerfile/HelloWorldServlet.java
================================================
package io.fabric8.dmp.samples.dockerfile;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

/**
 * @author roland
 * @since 18.04.17
 */
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String txt = FileUtils.readFileToString(new File("/welcome.txt"), Charset.defaultCharset());
        resp.getWriter().append(txt).flush();
        resp.setHeader("Content-Type", "plain/text");
    }
}


================================================
FILE: it/dockerfile/src/main/webapp/WEB-INF/web.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <servlet>
    <display-name>HelloWold</display-name>
    <servlet-name>hello-world</servlet-name>
    <servlet-class>io.fabric8.dmp.samples.dockerfile.HelloWorldServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>hello-world</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

================================================
FILE: it/dockerignore/.maven-dockerignore
================================================
target/**


================================================
FILE: it/dockerignore/Dockerfile
================================================
FROM busybox


================================================
FILE: it/dockerignore/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for showing a vanilla Dockerfile
  usage from the top-level directory
  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-dockerignore</artifactId>
  <version>0.29-SNAPSHOT</version>
  <packaging>docker-build</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>start</id>
            <phase>install</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>install</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <images>
            <image>
              <alias>simple</alias>
              <name>dmp-sample/dockerignore</name>
              <build>
                <dockerFileDir>${project.basedir}</dockerFileDir>
                <compression>gzip</compression>
              </build>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


================================================
FILE: it/healthcheck/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for demonstrating the health check feature

  Call it with 'mvn install'.

  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-healthcheck</artifactId>
  <version>0.29-SNAPSHOT</version>


  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
          <watchInterval>500</watchInterval>
          <logDate>default</logDate>
          <verbose>true</verbose>
          <autoPull>always</autoPull>
          <images>
            <image>
              <alias>healthybox1</alias>
              <name>busybox1</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <cmd>curl -f http://localhost/ || exit 1</cmd>
                </healthCheck>
                <cmd>
                  <shell>sleep 2</shell>
                </cmd>
              </build>
              <run>
                <wait>
                  <healthy>true</healthy>
                </wait>
              </run>
            </image>
            <image>
              <alias>healthybox2</alias>
              <name>busybox2</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <interval>5m</interval>
                  <timeout>3s</timeout>
                  <retries>3</retries>
                  <cmd>curl -f http://localhost/ || exit 1</cmd>
                </healthCheck>
              </build>
            </image>
            <image>
              <alias>healthybox3</alias>
              <name>busybox3</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <interval>5m</interval>
                  <retries>3</retries>
                  <cmd>
                    <shell>curl -f http://localhost/ || exit 1</shell>
                  </cmd>
                </healthCheck>
              </build>
              <run>
                <wait>
                  <healthy>true</healthy>
                </wait>
              </run>
            </image>
            <image>
              <alias>healthybox4</alias>
              <name>busybox4</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <mode>cmd</mode>
                  <interval>5m</interval>
                  <cmd>
                    <exec>
                      <args>curl</args>
                      <args>-f</args>
                      <args>http://localhost/</args>
                      <args>||</args>
                      <args>exit 1</args>
                    </exec>
                  </cmd>
                </healthCheck>
              </build>
            </image>
            <image>
              <alias>healthybox5</alias>
              <name>busybox5</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <interval>5m</interval>
                  <timeout>3s</timeout>
                  <retries>3</retries>
                  <cmd>curl -f http://localhost/ || exit 1</cmd>
                </healthCheck>
              </build>
            </image>
            <image>
              <alias>unhealthybox6</alias>
              <name>busybox5</name>
              <build>
                <from>busybox</from>
                <healthCheck>
                  <mode>none</mode>
                </healthCheck>
              </build>
            </image>
          </images>
        </configuration>
        <executions>
          <execution>
            <id>build</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/helloworld/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <!--
  Simple sample program including Java code.

  This helloworld exactly has been taken over mostly from https://github.com/arun-gupta/docker-java-sample.git
-->

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>


  <artifactId>dmp-sample-helloworld</artifactId>
  <version>0.29-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>dmp-sample-helloworld</name>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.5.0</version>
        <configuration>
          <mainClass>io.fabric8.dmp.sample.helloworld.App</mainClass>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>io.fabric8.dmp.sample.helloworld.App</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
          <images>
            <image>
              <name>hello/sub/project/java:${project.version}</name>
              <alias>hello-world</alias>
              <build>
                <from>openjdk:latest</from>
                <assembly>
                  <descriptorRef>artifact</descriptorRef>
                </assembly>
                <cmd>java -jar maven/${project.name}-${project.version}.jar</cmd>
              </build>
              <run>
                <wait>
                  <log>Hello World!</log>
                </wait>
              </run>
            </image>
          </images>
        </configuration>
        <executions>
          <execution>
            <id>docker:build</id>
            <phase>install</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
          <execution>
            <id>docker:start</id>
            <phase>install</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>docker:stop</id>
            <phase>install</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>


================================================
FILE: it/helloworld/src/main/java/io/fabric8/dmp/sample/helloworld/App.java
================================================
package io.fabric8.dmp.sample.helloworld;

/**
 * Hello world!
 */
public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}


================================================
FILE: it/helloworld/src/test/java/io/fabric8/dmp/sample/helloworld/AppTest.java
================================================
package io.fabric8.dmp.sample.helloworld;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
 * Unit test for simple App.
 */
public class AppTest
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest( String testName )
    {
        super( testName );
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite()
    {
        return new TestSuite( AppTest.class );
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
        assertTrue( true );
    }
}


================================================
FILE: it/log/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for demonstrating the custom network mode

  Call it with 'mvn install'.
  It will automatically create the custom network "test-network" and create two automatically named containers that can
  talk to each other via their netAlias names.
  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>


  <groupId>io.fabric8</groupId>
  <artifactId>dmp-sample-log</artifactId>
  <version>0.29-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>build</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <verbose>true</verbose>
          <autoPull>always</autoPull>
          <startParallel>false</startParallel>
          <images>
            <image>
              <alias>jetty1</alias>
              <name>jetty</name>
              <run>
                <wait>
                  <log>.*Server:main: Started @\d+ms.*</log>
                  <time>60000</time>
                </wait>
              <log><enabled>true</enabled></log>
              </run>
            </image>
            <image>
              <alias>jetty2</alias>
              <name>jetty</name>
              <run>
                <wait>
                  <log>.*Server:main: Started @\d+ms.*</log>
                  <time>60000</time>
                </wait>
              <log><enabled>true</enabled></log>
              </run>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/net/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for demonstrating the various network modes

  Call it with 'mvn install' and one of the following profiles:

  * "container" : Container connecting to another container's network
  * "bridge"    : Bridge mode
  * "host"      : Host mode
  * "custom"    : Custom network 'test-network' (must be created with 'docker network create test-network' in advance)
  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-net</artifactId>
  <version>0.29-SNAPSHOT</version>

  <profiles>
    <profile>
      <!-- "box1" connects to the network of "box2" which is bridged -->
      <id>container</id>
      <activation><activeByDefault>true</activeByDefault></activation>
      <properties>
        <box1.net>container:box2</box1.net>
        <box2.net>bridge</box2.net>
      </properties>
    </profile>

    <profile>
      <!-- Both images in "bridge" mode -->
      <id>bridge</id>
      <properties>
        <box1.net>bridge</box1.net>
        <box2.net>bridge</box2.net>
      </properties>
    </profile>

    <profile>
      <!-- Both images in "host" mode -->
      <id>host</id>
      <properties>
        <box1.net>host</box1.net>
        <box2.net>host</box2.net>
      </properties>
    </profile>

    <profile>
      <!-- Both images with no networking -->
      <id>none</id>
      <properties>
        <box1.net>none</box1.net>
        <box2.net>none</box2.net>
      </properties>
    </profile>

    <profile>
      <!-- Both images in a custom network 'test-network' which needs to be created beforehand -->
      <id>custom</id>
      <properties>
        <box1.net>test-network</box1.net>
        <box2.net>test-network</box2.net>
      </properties>
    </profile>

  </profiles>
  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
          <watchInterval>500</watchInterval>
          <logDate>default</logDate>
          <verbose>true</verbose>
          <autoPull>always</autoPull>
          <images>
            <image>
              <alias>box1</alias>
              <name>busybox</name>
              <run>
                <namingStrategy>alias</namingStrategy>
                <net>${box1.net}</net>
                <cmd>
                  <exec>
                    <args>sh</args>
                    <args>-c</args>
                    <args>ip address | grep "inet "; echo "finish"; tail -f /dev/null</args>
                  </exec>
                </cmd>
                <log>
                  <prefix>1</prefix> <color>cyan</color>
                </log>
                <wait>
                  <log>finish</log>
                </wait>
              </run>
            </image>
            <image>
              <alias>box2</alias>
              <name>busybox</name>
              <run>
                <net>${box2.net}</net>
                <namingStrategy>alias</namingStrategy>
                <cmd>
                  <exec>
                    <args>sh</args>
                    <args>-c</args>
                    <args>ip address | grep "inet "; echo "finish"; tail -f /dev/null</args>
                  </exec>
                </cmd>
                <log>
                  <prefix>2</prefix> <color>blue</color>
                </log>
                <wait>
                  <log>finish</log>
                </wait>
              </run>
            </image>
          </images>
        </configuration>
        <executions>
          <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Integration test demo which makes some small tests for Jolokia

  Call it with: 'mvn verify'

  The test does the following:

  * Creates a Docker data container with 'jolokia.war' and 'jolokia-it.war' as described in
    assembly descriptor src/main/docker-assembly.xml
  * Starts (and optionally pull) the jolokia/tomcat-7.0 container with the data container linked to it
  * Waits until Tomcat is up (i.e. until it is reachable via an HTTP request)
  * Runs an integration test via maven-failsafe-plugin, using rest-assured for accessing the deployed app.
  * Prints out some version information about the contaner running (in order prove that's not a fake ;-)
  * Stops and removes the containers.

  -->

  <groupId>io.fabric8.dmp.samples</groupId>
  <artifactId>dmp-sample-parent</artifactId>
  <version>0.29-SNAPSHOT</version>
  <packaging>pom</packaging>

  <url>http://www.jolokia.org</url>

  <!-- Should this reference the outer directory as a parent pom instead?  -->
  <properties>
    <docker.maven.plugin.version>${project.version}</docker.maven.plugin.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>${docker.maven.plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <modules>
    <module>net</module>
    <module>volume</module>
    <module>properties</module>
    <module>dockerignore</module>
    <module>docker-compose</module>
    <module>smallest</module>
    <module>zero-config</module>
    <module>healthcheck</module>
    <module>helloworld</module>
    <module>dockerfile</module>
    <module>log</module>
    <module>run-java</module>
  </modules>
</project>


================================================
FILE: it/properties/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for showing a vanilla Dockerfile
  usage from the top-level directory
  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-properties</artifactId>
  <version>0.29-SNAPSHOT</version>
  <packaging>docker-build</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>start</id>
            <phase>install</phase>
            <goals>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>install</phase>
            <goals>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <extensions>true</extensions>
        <configuration>
          <images>
            <image>
              <external>
                <type>properties</type>
                <prefix>postgres.docker</prefix>
              </external>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <properties>
    <postgres.docker.name>postgres:9.5.2</postgres.docker.name>
    <postgres.docker.log.prefix>postgres</postgres.docker.log.prefix>
    <postgres.docker.ports.1>${itest.postgres.port}:5432</postgres.docker.ports.1>
    <postgres.docker.env.POSTGRES_DB>localhost</postgres.docker.env.POSTGRES_DB>
    <postgres.docker.envRun.POSTGRES_USER>superuser</postgres.docker.envRun.POSTGRES_USER>
    <postgres.docker.envRun.POSTGRES_PASSWORD>superuser-password</postgres.docker.envRun.POSTGRES_PASSWORD>
    <postgres.docker.wait.time>10000</postgres.docker.wait.time>
    <postgres.docker.wait.log>PostgreSQL init process complete</postgres.docker.wait.log>
  </properties>
</project>


================================================
FILE: it/run-java/Dockerfile
================================================
FROM openjdk:jre

ADD target/${project.build.finalName}.jar /opt/hello-world.jar
ADD target/docker-extra/run-java/run-java.sh /opt

# See https://github.com/fabric8io-images/run-java-sh/ for more information
# about run-java.sh
CMD JAVA_MAIN_CLASS=HelloWorld sh /opt/run-java.sh



================================================
FILE: it/run-java/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <groupId>io.fabric8.dmp.samples</groupId>
  <artifactId>dmp-sample-run-java</artifactId>
  <packaging>jar</packaging>
  <version>0.29-SNAPSHOT</version>

  <build>

    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>docker:build</id>
            <phase>install</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>  
        <dependencies>
          <dependency>
            <groupId>io.fabric8</groupId>
            <artifactId>run-java-sh</artifactId>
            <version>1.2.2</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/run-java/src/main/java/HelloWorld.java
================================================
public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello world !");
    }
}


================================================
FILE: it/smallest/Dockerfile
================================================
FROM busybox
CMD ["echo", "Hello", "world!"]


================================================
FILE: it/smallest/pom.xml
================================================
<project>
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <groupId>fabric8io</groupId>
  <artifactId>dmp-sample-smallest</artifactId>
  <version>0.29-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>build</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>


================================================
FILE: it/test.xml
================================================
<c xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://fabric8.io/docker-maven-plugin/test2"
         xsi:schemaLocation="http://fabric8.io/docker-maven-plugin/test2 file:///tmp/test2.xsd">
  <watchMode>build</watchMode>
  <pushRegistry>blas</pushRegistry>
  <pushRegistry>blub</pushRegistry>
  <images>
    <image>
      <build>

      </build>
      <name>Test</name>
      <alias>blub</alias>
      <run>
      </run>
      <alias></alias>
    </image>
  </images>
</c>

================================================
FILE: it/volume/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--
  Sample project for demonstrating the volume creation feature


  Call it with 'mvn docker:create-volume'.
  or
  Call it with 'mvn docker:verify'
  It will create the volume "newVolume"
  -->

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>dmp-sample-volume</artifactId>
  <version>0.29-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
          <verbose>true</verbose>
          <autoPull>always</autoPull>
          <startParallel>true</startParallel>
          <volumes>
            <volume>
              <name>newVolume</name>
            </volume>
          </volumes>
        </configuration>
        <executions>
          <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>volume-create</goal>
              <goal>start</goal>
            </goals>
          </execution>
          <execution>
            <id>stop</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>stop</goal>
              <goal>volume-remove</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/zero-config/Dockerfile
================================================
FROM openjdk:jre

#RUN VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
ARG jar_file=target/zero-config-${project.version}.jar

ADD $jar_file /tmp/zero-config.jar
CMD java -cp /tmp/zero-config.jar HelloWorld


================================================
FILE: it/zero-config/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>io.fabric8.dmp.samples</groupId>
    <artifactId>dmp-sample-parent</artifactId>
    <version>0.29-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>


  <groupId>io.fabric8.dmp.samples</groupId>
  <artifactId>zero-config</artifactId>
  <packaging>jar</packaging>
  <version>0.29-SNAPSHOT</version>

  <properties>
    <jar_file>${project.build.directory}/${project.build.finalName}.jar</jar_file>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>build</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>


================================================
FILE: it/zero-config/src/main/java/HelloWorld.java
================================================
public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello world !");
    }
}


================================================
FILE: mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# 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.
# ----------------------------------------------------------------------------

# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
#   M2_HOME - location of maven2's installed home dir
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
#     e.g. to debug Maven itself, use
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------

if [ -z "$MAVEN_SKIP_RC" ] ; then

  if [ -f /etc/mavenrc ] ; then
    . /etc/mavenrc
  fi

  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi

fi

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  MINGW*) mingw=true;;
  Darwin*) darwin=true
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
    if [ -z "$JAVA_HOME" ]; then
      if [ -x "/usr/libexec/java_home" ]; then
        export JAVA_HOME="`/usr/libexec/java_home`"
      else
        export JAVA_HOME="/Library/Java/Home"
      fi
    fi
    ;;
esac

if [ -z "$JAVA_HOME" ] ; then
  if [ -r /etc/gentoo-release ] ; then
    JAVA_HOME=`java-config --jre-home`
  fi
fi

if [ -z "$M2_HOME" ] ; then
  ## resolve links - $0 may be a link to maven's home
  PRG="$0"

  # need this for relative symlinks
  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
      PRG="$link"
    else
      PRG="`dirname "$PRG"`/$link"
    fi
  done

  saveddir=`pwd`

  M2_HOME=`dirname "$PRG"`/..

  # make it fully qualified
  M2_HOME=`cd "$M2_HOME" && pwd`

  cd "$saveddir"
  # echo Using m2 at $M2_HOME
fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --unix "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  # TODO classpath?
fi

if [ -z "$JAVA_HOME" ]; then
  javaExecutable="`which javac`"
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
    # readlink(1) is not available as standard on Solaris 10.
    readLink=`which readlink`
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
      if $darwin ; then
        javaHome="`dirname \"$javaExecutable\"`"
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
      else
        javaExecutable="`readlink -f \"$javaExecutable\"`"
      fi
      javaHome="`dirname \"$javaExecutable\"`"
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
      JAVA_HOME="$javaHome"
      export JAVA_HOME
    fi
  fi
fi

if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly." >&2
  echo "  We cannot execute $JAVACMD" >&2
  exit 1
fi

if [ -z "$JAVA_HOME" ] ; then
  echo "Warning: JAVA_HOME environment variable is not set."
fi

CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher

# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {

  if [ -z "$1" ]
  then
    echo "Path not specified to find_maven_basedir"
    return 1
  fi

  basedir="$1"
  wdir="$1"
  while [ "$wdir" != '/' ] ; do
    if [ -d "$wdir"/.mvn ] ; then
      basedir=$wdir
      break
    fi
    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
    if [ -d "${wdir}" ]; then
      wdir=`cd "$wdir/.."; pwd`
    fi
    # end of workaround
  done
  echo "${basedir}"
}

# concatenates all lines of a file
concat_lines() {
  if [ -f "$1" ]; then
    echo "$(tr -s '\n' ' ' < "$1")"
  fi
}

BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
  exit 1;
fi

export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
  echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi

WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain

exec "$JAVACMD" \
  $MAVEN_OPTS \
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"


================================================
FILE: pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <prerequisites>
    <maven>3.0.3</maven>
  </prerequisites>

  <groupId>io.fabric8</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>0.34-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <name>docker-maven-plugin</name>
  <description>Docker Maven Plugin</description>

  <url>http://github.com/fabric8io/docker-maven-plugin</url>

  <developers>
    <developer>
      <name>Roland Huss</name>
      <id>roland</id>
      <email>rhuss@redhat.com</email>
      <roles>
        <role>Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Jae Gangemi</name>
      <id>jgangemi</id>
      <roles>
        <role>Developer</role>
      </roles>
    </developer>
  </developers>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.version>3.3.9</maven.version>
    <jmockit.version>1.43</jmockit.version>
    <surefire.version>3.0.0-M2</surefire.version>
    <jib-core.version>0.12.0</jib-core.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <scope>provided</scope>
      <version>${maven.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>${maven.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-model</artifactId>
      <version>${maven.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>${maven.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.sonatype.plexus</groupId>
      <artifactId>plexus-sec-dispatcher</artifactId>
      <scope>provided</scope>
      <version>1.3</version>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
      <scope>provided</scope>
      <version>3.0.24</version>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-component-annotations</artifactId>
      <scope>provided</scope>
      <version>1.6</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.plugin-tools</groupId>
      <artifactId>maven-plugin-annotations</artifactId>
      <version>3.5</version>
      <scope>provided</scope>
    </dependency>

    <!-- =============================================================================== -->

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.5</version>
    </dependency>

    <dependency>
      <groupId>com.github.jnr</groupId>
      <artifactId>jnr-unixsocket</artifactId>
      <version>0.25</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.6</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-text</artifactId>
      <version>1.1</version>
    </dependency>

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.5</version>
    </dependency>

    <dependency>
      <groupId>org.fusesource.jansi</groupId>
      <artifactId>jansi</artifactId>
      <version>1.16</version>
    </dependency>

    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcpkix-jdk15on</artifactId>
      <version>1.65</version>
    </dependency>

    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.1.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-project</artifactId>
        </exclusion>
        <!-- Doesn't work with guava which contains newer versions of utilities -->
        <exclusion>
          <groupId>com.google.collections</groupId>
          <artifactId>google-collections</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>com.google.cloud.tools</groupId>
      <artifactId>jib-core</artifactId>
      <version>${jib-core.version}</version>
    </dependency>

    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>1.26</version>
    </dependency>

    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>27.0.1-jre</version>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-interpolation</artifactId>
      <version>1.24</version>
    </dependency>


    <!-- =============================================================================== -->

    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jmockit</groupId>
      <artifactId>jmockit</artifactId>
      <version>${jmockit.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.skyscreamer</groupId>
      <artifactId>jsonassert</artifactId>
      <version>1.5.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>pl.pragmatists</groupId>
      <artifactId>JUnitParams</artifactId>
      <version>1.1.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>2.6.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>com.github.stefanbirkner</groupId>
      <artifactId>system-rules</artifactId>
      <version>1.19.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <compilerArgument>-Xlint:deprecation</compilerArgument>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>3.5</version>
        <configuration>
          <goalPrefix>docker</goalPrefix>
          <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
        </configuration>
        <executions>
          <execution>
            <id>mojo-descriptor</id>
            <phase>process-classes</phase>
            <goals>
              <goal>descriptor</goal>
            </goals>
          </execution>
          <execution>
            <id>help-goal</id>
            <goals>
              <goal>helpmojo</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>copy-plexus-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/filtered-resources/META-INF/plexus</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/resources/META-INF/plexus</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-asciidoc</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}/META-INF/doc/dmp</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/asciidoc</directory>
                  <filtering>false</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-component-metadata</artifactId>
        <version>1.7.1</version>
        <configuration>
          <staticMetadataDirectory>${basedir}/target/filtered-resources/META-INF/plexus</staticMetadataDirectory>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
        </plugin>

        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
          <configuration>
            <archive>
              <addMavenDescriptor>true</addMavenDescriptor>
            </archive>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.4</version>
        </plugin>

        <plugin>
          <groupId>org.asciidoctor</groupId>
          <artifactId>asciidoctor-maven-plugin</artifactId>
          <version>1.5.5</version>
          <dependencies>
            <dependency>
              <groupId>org.asciidoctor</groupId>
              <artifactId>asciidoctorj</artifactId>
              <version>1.5.6</version>
            </dependency>
          </dependencies>
          <configuration>
            <sourceDirectory>src/main/asciidoc</sourceDirectory>
            <attributes>
              <icons>font</icons>
              <pagenums />
              <version>${project.version}</version>
              <toc />
                <idprefix />
              <idseparator>-</idseparator>
            </attributes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
          <configuration>
            <argLine>
              -javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
            </argLine>
          </configuration>
        </plugin>

      </plugins>

    </pluginManagement>

    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>3.1.0</version>
      </extension>
    </extensions>
  </build>

  <distributionManagement>
    <snapshotRepository>
      <id>sonatype-nexus-snapshots</id>
      <name>Sonatype Nexus Snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>sonatype-nexus-staging</id>
      <name>Nexus Release Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>

  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/fabric8io/docker-maven-plugin/issues/</url>
  </issueManagement>

  <scm>
    <connection>scm:git:git://github.com/fabric8io/docker-maven-plugin.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/fabric8io/docker-maven-plugin.git</developerConnection>
    <tag>HEAD</tag>
    <url>git://github.com/fabric8io/docker-maven-plugin.git</url>
  </scm>

  <licenses>
    <license>
      <name>Apache 2</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>

  <profiles>
    <!-- "release" profiles used for deploying with fabric8 -->
    <profile>
      <id>release</id>
      <build>
        <plugins>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <executions>
              <execution>
                <id>default-deploy</id>
                <phase>deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <serverId>oss-sonatype-staging</serverId>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <configuration>
              <skip>false</skip>
            </configuration>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
              <skipSource>false</skipSource>
            </configuration>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <skip>false</skip>
              <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Enable JaCoCo Test -->
    <profile>
      <id>jacoco</id>

      <properties>
        <jacoco.version>0.7.9</jacoco.version>
      </properties>

      <dependencies>
        <!-- JaCoCo runtime must be in classpath for offline mode -->
        <dependency>
          <groupId>org.jacoco</groupId>
          <artifactId>org.jacoco.agent</artifactId>
          <classifier>runtime</classifier>
          <version>${jacoco.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>

      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco.version}</version>
            <executions>
              <execution>
                <id>instrument</id>
                <phase>process-classes</phase>
                <goals>
                  <goal>instrument</goal>
                </goals>
              </execution>
              <execution>
                <id>restore</id>
                <phase>test</phase>
                <goals>
                  <goal>restore-instrumented-classes</goal>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
	    <version>${surefire.version}</version>
            <configuration>
              <systemPropertyVariables>
                <!-- JaCoCo runtime must know where to dump coverage: -->
                <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
              </systemPropertyVariables>
            </configuration>
          </plugin>

        </plugins>
      </build>
    </profile>

    <profile>
      <id>doc-html</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctor-maven-plugin</artifactId>
            <configuration>
              <backend>html</backend>
              <sourceHighlighter>coderay</sourceHighlighter>
              <attributes>
                <toc>left</toc>
              </attributes>
            </configur
Download .txt
gitextract_a108wrnn/

├── .circleci/
│   └── config.yml
├── .codecov.yml
├── .github/
│   └── ISSUE_TEMPLATE.md
├── .gitignore
├── .mvn/
│   ├── jvm.config
│   ├── maven.config
│   └── wrapper/
│       ├── maven-wrapper.jar
│       └── maven-wrapper.properties
├── CONTRIBUTING.md
├── Jenkinsfile
├── LICENSE
├── README.md
├── doc/
│   ├── changelog.md
│   ├── ci-docs.sh
│   ├── examples.md
│   ├── howto-release.md
│   ├── integration-tests.md
│   ├── intro.md
│   ├── migration-0.9.x.md
│   ├── readme-0.9.x.md
│   └── update_issue_links.sh
├── it/
│   ├── README.md
│   ├── docker-compose/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── docker/
│   │               ├── Dockerfile
│   │               ├── docker-compose.yml
│   │               └── j4p.war
│   ├── dockerfile/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── docker/
│   │           │   ├── Dockerfile
│   │           │   └── welcome.txt
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── fabric8/
│   │           │           └── dmp/
│   │           │               └── samples/
│   │           │                   └── dockerfile/
│   │           │                       └── HelloWorldServlet.java
│   │           └── webapp/
│   │               └── WEB-INF/
│   │                   └── web.xml
│   ├── dockerignore/
│   │   ├── .maven-dockerignore
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── healthcheck/
│   │   └── pom.xml
│   ├── helloworld/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── fabric8/
│   │       │               └── dmp/
│   │       │                   └── sample/
│   │       │                       └── helloworld/
│   │       │                           └── App.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── dmp/
│   │                           └── sample/
│   │                               └── helloworld/
│   │                                   └── AppTest.java
│   ├── log/
│   │   └── pom.xml
│   ├── net/
│   │   └── pom.xml
│   ├── pom.xml
│   ├── properties/
│   │   └── pom.xml
│   ├── run-java/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── HelloWorld.java
│   ├── smallest/
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── test.xml
│   ├── volume/
│   │   └── pom.xml
│   └── zero-config/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               └── java/
│                   └── HelloWorld.java
├── mvnw
├── pom.xml
├── release.groovy
├── release.sh
├── samples/
│   ├── README.md
│   ├── cargo-jolokia/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── maven/
│   │                           └── docker/
│   │                               └── sample/
│   │                                   └── jolokia/
│   │                                       └── VersionIT.java
│   ├── custom-net/
│   │   └── pom.xml
│   ├── data-jolokia/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── docker/
│   │       │       ├── assembly.xml
│   │       │       ├── demo/
│   │       │       │   ├── .maven-dockerignore
│   │       │       │   ├── Dockerfile
│   │       │       │   ├── Dockerfile.test
│   │       │       │   ├── jolokia-it.war
│   │       │       │   ├── jolokia.war
│   │       │       │   └── please-ignore/
│   │       │       │       └── me.md
│   │       │       ├── environment.properties
│   │       │       └── hello.sh
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── maven/
│   │                           └── docker/
│   │                               └── sample/
│   │                                   └── jolokia/
│   │                                       └── VersionIT.java
│   ├── docker-compose/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── docker/
│   │               ├── Dockerfile
│   │               ├── docker-compose.yml
│   │               └── j4p.war
│   ├── dockerfile/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── docker/
│   │           │   ├── Dockerfile
│   │           │   └── welcome.txt
│   │           ├── java/
│   │           │   └── io/
│   │           │       └── fabric8/
│   │           │           └── dmp/
│   │           │               └── samples/
│   │           │                   └── dockerfile/
│   │           │                       └── HelloWorldServlet.java
│   │           └── webapp/
│   │               └── WEB-INF/
│   │                   └── web.xml
│   ├── dockerignore/
│   │   ├── .maven-dockerignore
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── healthcheck/
│   │   └── pom.xml
│   ├── helloworld/
│   │   ├── pom.xml
│   │   └── src/
│   │       ├── main/
│   │       │   └── java/
│   │       │       └── io/
│   │       │           └── fabric8/
│   │       │               └── dmp/
│   │       │                   └── sample/
│   │       │                       └── helloworld/
│   │       │                           └── App.java
│   │       └── test/
│   │           └── java/
│   │               └── io/
│   │                   └── fabric8/
│   │                       └── dmp/
│   │                           └── sample/
│   │                               └── helloworld/
│   │                                   └── AppTest.java
│   ├── log/
│   │   └── pom.xml
│   ├── multi-wait/
│   │   └── pom.xml
│   ├── net/
│   │   └── pom.xml
│   ├── pom.xml
│   ├── properties/
│   │   └── pom.xml
│   ├── run-java/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── HelloWorld.java
│   ├── smallest/
│   │   ├── Dockerfile
│   │   └── pom.xml
│   ├── spring-boot-with-jib/
│   │   ├── README.md
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   └── main/
│   │   │       └── java/
│   │   │           └── io/
│   │   │               └── fabric8/
│   │   │                   └── maven/
│   │   │                       └── sample/
│   │   │                           └── springboot/
│   │   │                               └── jib/
│   │   │                                   ├── Application.java
│   │   │                                   └── HelloController.java
│   │   └── static/
│   │       └── testFile.txt
│   ├── test.xml
│   ├── volume/
│   │   └── pom.xml
│   └── zero-config/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               └── java/
│                   └── HelloWorld.java
└── src/
    ├── main/
    │   ├── asciidoc/
    │   │   ├── inc/
    │   │   │   ├── _authentication.adoc
    │   │   │   ├── _docker-build.adoc
    │   │   │   ├── _docker-logs.adoc
    │   │   │   ├── _docker-push.adoc
    │   │   │   ├── _docker-remove.adoc
    │   │   │   ├── _docker-save.adoc
    │   │   │   ├── _docker-source.adoc
    │   │   │   ├── _docker-start.adoc
    │   │   │   ├── _docker-stop.adoc
    │   │   │   ├── _docker-tag.adoc
    │   │   │   ├── _docker-volume-create.adoc
    │   │   │   ├── _docker-volume-remove.adoc
    │   │   │   ├── _docker-watch.adoc
    │   │   │   ├── _external-configuration.adoc
    │   │   │   ├── _global-configuration.adoc
    │   │   │   ├── _goals.adoc
    │   │   │   ├── _image-configuration.adoc
    │   │   │   ├── _implicit-properties.adoc
    │   │   │   ├── _installation.adoc
    │   │   │   ├── _introduction.adoc
    │   │   │   ├── _links.adoc
    │   │   │   ├── _registry.adoc
    │   │   │   ├── build/
    │   │   │   │   ├── _assembly.adoc
    │   │   │   │   ├── _buildargs.adoc
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _healthcheck.adoc
    │   │   │   │   └── _overview.adoc
    │   │   │   ├── external/
    │   │   │   │   ├── _docker_compose.adoc
    │   │   │   │   └── _property_configuration.adoc
    │   │   │   ├── image/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _example.adoc
    │   │   │   │   ├── _example_imagesMap.adoc
    │   │   │   │   └── _naming.adoc
    │   │   │   ├── misc/
    │   │   │   │   ├── _env.adoc
    │   │   │   │   └── _startup.adoc
    │   │   │   ├── push/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   └── _overview.adoc
    │   │   │   ├── start/
    │   │   │   │   ├── _configuration.adoc
    │   │   │   │   ├── _depends-on.adoc
    │   │   │   │   ├── _links.adoc
    │   │   │   │   ├── _logging.adoc
    │   │   │   │   ├── _network.adoc
    │   │   │   │   ├── _overview.adoc
    │   │   │   │   ├── _port-mapping.adoc
    │   │   │   │   ├── _restart.adoc
    │   │   │   │   ├── _volumes.adoc
    │   │   │   │   └── _wait.adoc
    │   │   │   └── watch/
    │   │   │       ├── _configuration.adoc
    │   │   │       └── _overview.adoc
    │   │   └── index.adoc
    │   ├── java/
    │   │   └── io/
    │   │       └── fabric8/
    │   │           └── maven/
    │   │               └── docker/
    │   │                   ├── AbstractBuildSupportMojo.java
    │   │                   ├── AbstractDockerMojo.java
    │   │                   ├── BuildMojo.java
    │   │                   ├── LogsMojo.java
    │   │                   ├── PushMojo.java
    │   │                   ├── RemoveMojo.java
    │   │                   ├── RunMojo.java
    │   │                   ├── SaveMojo.java
    │   │                   ├── SourceMojo.java
    │   │                   ├── StartMojo.java
    │   │                   ├── StopMojo.java
    │   │                   ├── TagMojo.java
    │   │                   ├── VolumeCreateMojo.java
    │   │                   ├── VolumeRemoveMojo.java
    │   │                   ├── WatchMojo.java
    │   │                   ├── access/
    │   │                   │   ├── AuthConfig.java
    │   │                   │   ├── BuildOptions.java
    │   │                   │   ├── ContainerCreateConfig.java
    │   │                   │   ├── ContainerHostConfig.java
    │   │                   │   ├── ContainerNetworkingConfig.java
    │   │                   │   ├── DockerAccess.java
    │   │                   │   ├── DockerAccessException.java
    │   │                   │   ├── DockerConnectionDetector.java
    │   │                   │   ├── DockerMachine.java
    │   │                   │   ├── ExecException.java
    │   │                   │   ├── KeyStoreUtil.java
    │   │                   │   ├── NetworkCreateConfig.java
    │   │                   │   ├── PortMapping.java
    │   │                   │   ├── UrlBuilder.java
    │   │                   │   ├── VolumeCreateConfig.java
    │   │                   │   ├── chunked/
    │   │                   │   │   ├── BuildJsonResponseHandler.java
    │   │                   │   │   ├── EntityStreamReaderUtil.java
    │   │                   │   │   └── PullOrPushResponseJsonHandler.java
    │   │                   │   ├── ecr/
    │   │                   │   │   ├── AwsSigner4.java
    │   │                   │   │   ├── AwsSigner4Request.java
    │   │                   │   │   └── EcrExtendedAuth.java
    │   │                   │   ├── hc/
    │   │                   │   │   ├── ApacheHttpClientDelegate.java
    │   │                   │   │   ├── DockerAccessWithHcClient.java
    │   │                   │   │   ├── http/
    │   │                   │   │   │   ├── HttpClientBuilder.java
    │   │                   │   │   │   └── HttpRequestException.java
    │   │                   │   │   ├── unix/
    │   │                   │   │   │   ├── UnixConnectionSocketFactory.java
    │   │                   │   │   │   ├── UnixSocket.java
    │   │                   │   │   │   └── UnixSocketClientBuilder.java
    │   │                   │   │   ├── util/
    │   │                   │   │   │   ├── AbstractNativeClientBuilder.java
    │   │                   │   │   │   ├── AbstractNativeSocketFactory.java
    │   │                   │   │   │   └── ClientBuilder.java
    │   │                   │   │   └── win/
    │   │                   │   │       ├── NamedPipe.java
    │   │                   │   │       ├── NamedPipeClientBuilder.java
    │   │                   │   │       ├── NpipeConnectionSocketFactory.java
    │   │                   │   │       └── NpipeSocketAddress.java
    │   │                   │   ├── log/
    │   │                   │   │   ├── LogCallback.java
    │   │                   │   │   ├── LogGetHandle.java
    │   │                   │   │   └── LogRequestor.java
    │   │                   │   └── util/
    │   │                   │       ├── EnvCommand.java
    │   │                   │       ├── ExternalCommand.java
    │   │                   │       ├── LocalSocketUtil.java
    │   │                   │       └── RequestUtil.java
    │   │                   ├── assembly/
    │   │                   │   ├── AllFilesExecCustomizer.java
    │   │                   │   ├── ArchiverCustomizer.java
    │   │                   │   ├── AssemblyFiles.java
    │   │                   │   ├── BuildDirs.java
    │   │                   │   ├── DockerAssemblyConfigurationSource.java
    │   │                   │   ├── DockerAssemblyManager.java
    │   │                   │   ├── DockerFileBuilder.java
    │   │                   │   ├── DockerFileKeyword.java
    │   │                   │   ├── DockerFileOption.java
    │   │                   │   └── MappingTrackArchiver.java
    │   │                   ├── config/
    │   │                   │   ├── ArchiveCompression.java
    │   │                   │   ├── Arguments.java
    │   │                   │   ├── AssemblyConfiguration.java
    │   │                   │   ├── AssemblyMode.java
    │   │                   │   ├── BuildImageConfiguration.java
    │   │                   │   ├── BuildImageSelectMode.java
    │   │                   │   ├── CleanupMode.java
    │   │                   │   ├── ConfigHelper.java
    │   │                   │   ├── DockerMachineConfiguration.java
    │   │                   │   ├── HealthCheckConfiguration.java
    │   │                   │   ├── HealthCheckMode.java
    │   │                   │   ├── ImageConfiguration.java
    │   │                   │   ├── ImagePullPolicy.java
    │   │                   │   ├── LogConfiguration.java
    │   │                   │   ├── NetworkConfig.java
    │   │                   │   ├── RegistryAuthConfiguration.java
    │   │                   │   ├── RestartPolicy.java
    │   │                   │   ├── RunImageConfiguration.java
    │   │                   │   ├── RunVolumeConfiguration.java
    │   │                   │   ├── StopMode.java
    │   │                   │   ├── UlimitConfig.java
    │   │                   │   ├── VolumeConfiguration.java
    │   │                   │   ├── WaitConfiguration.java
    │   │                   │   ├── WatchImageConfiguration.java
    │   │                   │   ├── WatchMode.java
    │   │                   │   └── handler/
    │   │                   │       ├── ExternalConfigHandler.java
    │   │                   │       ├── ExternalConfigHandlerException.java
    │   │                   │       ├── ImageConfigResolver.java
    │   │                   │       ├── compose/
    │   │                   │       │   ├── ComposeUtils.java
    │   │                   │       │   ├── DockerComposeConfigHandler.java
    │   │                   │       │   ├── DockerComposeConfiguration.java
    │   │                   │       │   └── DockerComposeServiceWrapper.java
    │   │                   │       └── property/
    │   │                   │           ├── ConfigKey.java
    │   │                   │           ├── PropertyConfigHandler.java
    │   │                   │           ├── PropertyMode.java
    │   │                   │           ├── ValueCombinePolicy.java
    │   │                   │           └── ValueProvider.java
    │   │                   ├── log/
    │   │                   │   ├── DefaultLogCallback.java
    │   │                   │   ├── LogDispatcher.java
    │   │                   │   ├── LogOutput.java
    │   │                   │   ├── LogOutputSpec.java
    │   │                   │   ├── LogOutputSpecFactory.java
    │   │                   │   └── SharedPrintStream.java
    │   │                   ├── model/
    │   │                   │   ├── Container.java
    │   │                   │   ├── ContainerDetails.java
    │   │                   │   ├── ContainersListElement.java
    │   │                   │   ├── ExecDetails.java
    │   │                   │   ├── Image.java
    │   │                   │   ├── ImageArchiveManifest.java
    │   │                   │   ├── ImageArchiveManifestAdapter.java
    │   │                   │   ├── ImageArchiveManifestEntry.java
    │   │                   │   ├── ImageArchiveManifestEntryAdapter.java
    │   │                   │   ├── ImageDetails.java
    │   │                   │   ├── Network.java
    │   │                   │   └── NetworksListElement.java
    │   │                   ├── service/
    │   │                   │   ├── ArchiveService.java
    │   │                   │   ├── BuildService.java
    │   │                   │   ├── ContainerTracker.java
    │   │                   │   ├── DockerAccessFactory.java
    │   │                   │   ├── ImagePullManager.java
    │   │                   │   ├── JibBuildService.java
    │   │                   │   ├── MojoExecutionService.java
    │   │                   │   ├── QueryService.java
    │   │                   │   ├── RegistryService.java
    │   │                   │   ├── RunService.java
    │   │                   │   ├── ServiceHub.java
    │   │                   │   ├── ServiceHubFactory.java
    │   │                   │   ├── VolumeService.java
    │   │                   │   ├── WaitService.java
    │   │                   │   ├── WatchService.java
    │   │                   │   └── helper/
    │   │                   │       └── StartContainerExecutor.java
    │   │                   ├── util/
    │   │                   │   ├── AnsiLogger.java
    │   │                   │   ├── AuthConfigFactory.java
    │   │                   │   ├── AutoPullMode.java
    │   │                   │   ├── ContainerNamingUtil.java
    │   │                   │   ├── CredentialHelperClient.java
    │   │                   │   ├── DeepCopy.java
    │   │                   │   ├── DockerFileUtil.java
    │   │                   │   ├── DockerPathUtil.java
    │   │                   │   ├── EnvUtil.java
    │   │                   │   ├── FormatParameterReplacer.java
    │   │                   │   ├── GavLabel.java
    │   │                   │   ├── ImageArchiveUtil.java
    │   │                   │   ├── ImageName.java
    │   │                   │   ├── ImageNameFormatter.java
    │   │                   │   ├── JibServiceUtil.java
    │   │                   │   ├── JsonFactory.java
    │   │                   │   ├── Logger.java
    │   │                   │   ├── MojoParameters.java
    │   │                   │   ├── NamePatternUtil.java
    │   │                   │   ├── StartOrderResolver.java
    │   │                   │   ├── SuffixFileFilter.java
    │   │                   │   ├── Task.java
    │   │                   │   ├── TimestampFactory.java
    │   │                   │   ├── VolumeBindingUtil.java
    │   │                   │   └── aws/
    │   │                   │       └── AwsSdkAuthConfigFactory.java
    │   │                   └── wait/
    │   │                       ├── ExitCodeChecker.java
    │   │                       ├── HealthCheckChecker.java
    │   │                       ├── HttpPingChecker.java
    │   │                       ├── LogMatchCallback.java
    │   │                       ├── LogWaitChecker.java
    │   │                       ├── LogWaitCheckerCallback.java
    │   │                       ├── PreconditionFailedException.java
    │   │                       ├── TcpPortChecker.java
    │   │                       ├── WaitChecker.java
    │   │                       ├── WaitTimeoutException.java
    │   │                       └── WaitUtil.java
    │   └── resources/
    │       ├── META-INF/
    │       │   └── plexus/
    │       │       └── components.xml
    │       └── assemblies/
    │           ├── artifact-with-dependencies.xml
    │           ├── artifact.xml
    │           ├── hawt-app.xml
    │           ├── project.xml
    │           └── rootWar.xml
    └── test/
        ├── java/
        │   ├── com/
        │   │   └── amazonaws/
        │   │       └── auth/
        │   │           ├── AWSCredentials.java
        │   │           ├── AWSSessionCredentials.java
        │   │           └── DefaultAWSCredentialsProviderChain.java
        │   ├── integration/
        │   │   ├── DockerAccessIT.java
        │   │   ├── DockerAccessWinIT.java
        │   │   └── DockerMachineIT.java
        │   └── io/
        │       └── fabric8/
        │           └── maven/
        │               └── docker/
        │                   ├── BaseMojoTest.java
        │                   ├── RemoveMojoTest.java
        │                   ├── SaveMojoTest.java
        │                   ├── StopMojoTest.java
        │                   ├── UrlBuilderTest.java
        │                   ├── VolumeCreateMojoTest.java
        │                   ├── VolumeRemoveMojoTest.java
        │                   ├── access/
        │                   │   ├── BuildConfigTest.java
        │                   │   ├── ContainerCreateConfigTest.java
        │                   │   ├── ContainerHostConfigTest.java
        │                   │   ├── DockerConnectionDetectorTest.java
        │                   │   ├── KeyStoreUtilTest.java
        │                   │   ├── PortMappingPropertyWriteHelperTest.java
        │                   │   ├── PortMappingTest.java
        │                   │   ├── ecr/
        │                   │   │   ├── AwsSigner4RequestTest.java
        │                   │   │   └── EcrExtendedAuthTest.java
        │                   │   ├── hc/
        │                   │   │   └── DockerAccessWithHcClientTest.java
        │                   │   └── log/
        │                   │       └── LogRequestorTest.java
        │                   ├── assembly/
        │                   │   ├── DockerAssemblyConfigurationSourceTest.java
        │                   │   ├── DockerAssemblyManagerTest.java
        │                   │   ├── DockerFileBuilderTest.java
        │                   │   └── MappingTrackArchiverTest.java
        │                   ├── config/
        │                   │   ├── BuildImageConfigurationTest.java
        │                   │   ├── BuildImageConfigurationWithMavenDepsTest.java
        │                   │   ├── CleanupModeTest.java
        │                   │   ├── ConfigHelperTest.java
        │                   │   ├── HealthCheckConfigTest.java
        │                   │   ├── ImageConfigResolverTest.java
        │                   │   ├── LogConfigurationTest.java
        │                   │   ├── NetworkingConfigTest.java
        │                   │   ├── RegistryAuthConfigurationTest.java
        │                   │   ├── UlimitConfigTest.java
        │                   │   └── handler/
        │                   │       ├── AbstractConfigHandlerTest.java
        │                   │       ├── ArchiveCompressionTest.java
        │                   │       ├── compose/
        │                   │       │   ├── ComposeUtilsTest.java
        │                   │       │   └── DockerComposeConfigHandlerTest.java
        │                   │       └── property/
        │                   │           ├── PropertyConfigHandlerTest.java
        │                   │           ├── PropertyModeTest.java
        │                   │           └── ValueProviderTest.java
        │                   ├── log/
        │                   │   ├── DefaultLogCallbackTest.java
        │                   │   ├── LogOutputSpecDateTest.java
        │                   │   ├── LogOutputSpecFactoryTest.java
        │                   │   └── LogOutputSpecTest.java
        │                   ├── model/
        │                   │   ├── ContainerDetailsTest.java
        │                   │   ├── ContainerListElementTest.java
        │                   │   ├── ImageArchiveManifestAdapterTest.java
        │                   │   ├── ImageArchiveManifestEntryAdapterTest.java
        │                   │   └── ImageDetailsTest.java
        │                   ├── service/
        │                   │   ├── BuildServiceTest.java
        │                   │   ├── ContainerTrackerTest.java
        │                   │   ├── JibBuildServiceTest.java
        │                   │   ├── LoadImageTest.java
        │                   │   ├── MojoExecutionServiceTest.java
        │                   │   ├── RegistryServiceTest.java
        │                   │   ├── RunServiceTest.java
        │                   │   ├── VolumeServiceTest.java
        │                   │   └── helper/
        │                   │       └── StartContainerExecutorTest.java
        │                   ├── util/
        │                   │   ├── AnsiLoggerTest.java
        │                   │   ├── AuthConfigFactoryTest.java
        │                   │   ├── AuthConfigTest.java
        │                   │   ├── AutoPullModeTest.java
        │                   │   ├── ContainerNamingUtilTest.java
        │                   │   ├── CredentialHelperClientTest.java
        │                   │   ├── DockerFileUtilTest.java
        │                   │   ├── DockerPathUtilTest.java
        │                   │   ├── EnvUtilTest.java
        │                   │   ├── GavLabelTest.java
        │                   │   ├── ImageArchiveUtilTest.java
        │                   │   ├── ImageNameFormatterTest.java
        │                   │   ├── ImageNameTest.java
        │                   │   ├── JibServiceUtilTest.java
        │                   │   ├── NamePatternUtilTest.java
        │                   │   ├── PathTestUtil.java
        │                   │   ├── StartOrderResolverTest.java
        │                   │   ├── TimestampFactoryTest.java
        │                   │   ├── VolumeBindingUtilTest.java
        │                   │   ├── WaitUtilTest.java
        │                   │   └── aws/
        │                   │       └── AwsSdkAuthConfigFactoryTest.java
        │                   └── wait/
        │                       ├── ExitCodeCheckerTest.java
        │                       ├── LogMatchCallbackTest.java
        │                       └── LogWaitCheckerTest.java
        └── resources/
            ├── compose/
            │   ├── docker-compose-network-aliases.yml
            │   ├── docker-compose.yml
            │   └── version/
            │       ├── compose-no-version.yml
            │       ├── compose-version-2.yml
            │       ├── compose-version-2x.yml
            │       └── compose-wrong-version.yml
            ├── docker/
            │   ├── Dockerfile.multiline_label.test
            │   ├── Dockerfile.test
            │   ├── Dockerfile_assembly_verify_copy_chown_valid.test
            │   ├── Dockerfile_assembly_verify_copy_invalid.test
            │   ├── Dockerfile_assembly_verify_copy_valid.test
            │   ├── Dockerfile_optimised.test
            │   ├── Dockerfile_tcp.test
            │   ├── Dockerfile_udp.test
            │   ├── containerCreateConfigAll.json
            │   └── containerHostConfigAll.json
            ├── interpolate/
            │   ├── at/
            │   │   ├── Dockerfile_1
            │   │   └── Dockerfile_1.expected
            │   ├── none/
            │   │   ├── Dockerfile_1
            │   │   └── Dockerfile_1.expected
            │   └── var/
            │       ├── Dockerfile_1
            │       └── Dockerfile_1.expected
            └── io/
                └── fabric8/
                    └── maven/
                        └── docker/
                            ├── access/
                            │   ├── certpath/
                            │   │   ├── ca.pem
                            │   │   ├── cert.pem
                            │   │   └── key.pem
                            │   ├── keys/
                            │   │   ├── ecdsa.pem
                            │   │   ├── invalid.pem
                            │   │   ├── pkcs1.pem
                            │   │   └── pkcs8.pem
                            │   └── test-environment.props
                            └── util/
                                ├── Dockerfile_from_simple
                                ├── Dockerfile_multi_stage
                                ├── Dockerfile_multi_stage_named_build_stages
                                ├── Dockerfile_multi_stage_named_redundant_build_stages
                                ├── Dockerfile_multi_stage_with_args
                                ├── openshift_nologin_config.yaml
                                └── openshift_simple_config.yaml
Download .txt
Showing preview only (307K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3593 symbols across 275 files)

FILE: it/dockerfile/src/main/java/io/fabric8/dmp/samples/dockerfile/HelloWorldServlet.java
  class HelloWorldServlet (line 18) | public class HelloWorldServlet extends HttpServlet {
    method doGet (line 20) | @Override

FILE: it/helloworld/src/main/java/io/fabric8/dmp/sample/helloworld/App.java
  class App (line 6) | public class App {
    method main (line 7) | public static void main(String[] args) {

FILE: it/helloworld/src/test/java/io/fabric8/dmp/sample/helloworld/AppTest.java
  class AppTest (line 10) | public class AppTest
    method AppTest (line 18) | public AppTest( String testName )
    method suite (line 26) | public static Test suite()
    method testApp (line 34) | public void testApp()

FILE: it/run-java/src/main/java/HelloWorld.java
  class HelloWorld (line 1) | public class HelloWorld {
    method main (line 3) | public static void main(String[] args) {

FILE: it/zero-config/src/main/java/HelloWorld.java
  class HelloWorld (line 1) | public class HelloWorld {
    method main (line 3) | public static void main(String[] args) {

FILE: samples/cargo-jolokia/src/test/java/io/fabric8/maven/docker/sample/jolokia/VersionIT.java
  class VersionIT (line 17) | public class VersionIT {
    method testVersion (line 19) | @Test

FILE: samples/data-jolokia/src/test/java/io/fabric8/maven/docker/sample/jolokia/VersionIT.java
  class VersionIT (line 17) | public class VersionIT {
    method testVersion (line 19) | @Test

FILE: samples/dockerfile/src/main/java/io/fabric8/dmp/samples/dockerfile/HelloWorldServlet.java
  class HelloWorldServlet (line 18) | public class HelloWorldServlet extends HttpServlet {
    method doGet (line 20) | @Override

FILE: samples/helloworld/src/main/java/io/fabric8/dmp/sample/helloworld/App.java
  class App (line 6) | public class App {
    method main (line 7) | public static void main(String[] args) {

FILE: samples/helloworld/src/test/java/io/fabric8/dmp/sample/helloworld/AppTest.java
  class AppTest (line 10) | public class AppTest
    method AppTest (line 18) | public AppTest( String testName )
    method suite (line 26) | public static Test suite()
    method testApp (line 34) | public void testApp()

FILE: samples/run-java/src/main/java/HelloWorld.java
  class HelloWorld (line 1) | public class HelloWorld {
    method main (line 3) | public static void main(String[] args) {

FILE: samples/spring-boot-with-jib/src/main/java/io/fabric8/maven/sample/springboot/jib/Application.java
  class Application (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: samples/spring-boot-with-jib/src/main/java/io/fabric8/maven/sample/springboot/jib/HelloController.java
  class HelloController (line 7) | @RestController
    method index (line 10) | @RequestMapping("/")

FILE: samples/zero-config/src/main/java/HelloWorld.java
  class HelloWorld (line 1) | public class HelloWorld {
    method main (line 3) | public static void main(String[] args) {

FILE: src/main/java/io/fabric8/maven/docker/AbstractBuildSupportMojo.java
  class AbstractBuildSupportMojo (line 21) | abstract public class AbstractBuildSupportMojo extends AbstractDockerMojo {
    method getBuildContext (line 46) | protected BuildService.BuildContext getBuildContext() throws MojoExecu...
    method createMojoParameters (line 54) | protected MojoParameters createMojoParameters() {

FILE: src/main/java/io/fabric8/maven/docker/AbstractDockerMojo.java
  class AbstractDockerMojo (line 57) | public abstract class AbstractDockerMojo extends AbstractMojo implements...
    method execute (line 225) | @Override
    method logException (line 266) | private void logException(Exception exp) {
    method getDockerAccessContext (line 274) | protected DockerAccessFactory.DockerAccessContext getDockerAccessConte...
    method getRegistryConfig (line 287) | protected RegistryService.RegistryConfig getRegistryConfig(String spec...
    method getBuildTimestamp (line 302) | protected synchronized Date getBuildTimestamp() throws IOException {
    method getReferenceDate (line 313) | protected Date getReferenceDate() throws IOException {
    method getBuildTimestampFile (line 319) | protected File getBuildTimestampFile() {
    method getLogPrefix (line 327) | protected String getLogPrefix() {
    method useColorForLogging (line 335) | private boolean useColorForLogging() {
    method initImageConfiguration (line 341) | private String initImageConfiguration(Date buildTimeStamp)  {
    method customizeConfig (line 371) | @Override
    method isDockerAccessRequired (line 382) | protected boolean isDockerAccessRequired() {
    method executeInternal (line 391) | protected abstract void executeInternal(ServiceHub serviceHub)
    method getResolvedImages (line 402) | protected List<ImageConfiguration> getResolvedImages() {
    method getVolumes (line 411) | protected List<VolumeConfiguration> getVolumes() {
    method contextualize (line 417) | @Override
    method getGavLabel (line 424) | protected GavLabel getGavLabel() {
    method getLogDispatcher (line 429) | protected LogDispatcher getLogDispatcher(ServiceHub hub) {
    method getAllImages (line 438) | private ImmutableList<ImageConfiguration> getAllImages() {
    method getImagePullManager (line 454) | public ImagePullManager getImagePullManager(String imagePullPolicy, St...
    method getSessionCacheStore (line 458) | private ImagePullManager.CacheStore getSessionCacheStore() {
    method createSimpleDockerfileConfig (line 474) | private ImageConfiguration createSimpleDockerfileConfig(File dockerFil...
    method addSimpleDockerfileConfig (line 493) | private ImageConfiguration addSimpleDockerfileConfig(ImageConfiguratio...

FILE: src/main/java/io/fabric8/maven/docker/BuildMojo.java
  class BuildMojo (line 33) | @Mojo(name = "build", defaultPhase = LifecyclePhase.INSTALL)
    method executeInternal (line 57) | @Override
    method buildAndTag (line 72) | protected void buildAndTag(ServiceHub hub, ImageConfiguration imageCon...
    method proceedWithBuildProcess (line 82) | private void proceedWithBuildProcess(ServiceHub hub, BuildService.Buil...
    method proceedWithJibBuild (line 90) | private void proceedWithJibBuild(ServiceHub hub, BuildService.BuildCon...
    method proceedWithDockerBuild (line 95) | private void proceedWithDockerBuild(BuildService buildService, BuildSe...
    method getReferenceDate (line 107) | @Override
    method resolveBuildArchiveParameter (line 112) | private String resolveBuildArchiveParameter() {
    method shallBuildArchiveOnly (line 122) | private boolean shallBuildArchiveOnly() {
    method determinePullPolicy (line 132) | private String determinePullPolicy(BuildImageConfiguration buildConfig) {
    method processImageConfig (line 144) | private void processImageConfig(ServiceHub hub, ImageConfiguration aIm...
    method executeBuildPlugins (line 157) | private void executeBuildPlugins() {
    method processDmpPluginDescription (line 171) | private void processDmpPluginDescription(URL pluginDesc, File outputDi...
    method getAndEnsureOutputDirectory (line 193) | private File getAndEnsureOutputDirectory() {
    method callBuildPlugin (line 201) | private void callBuildPlugin(File outputDir, String buildPluginClass) ...

FILE: src/main/java/io/fabric8/maven/docker/LogsMojo.java
  class LogsMojo (line 27) | @Mojo(name = "logs")
    method executeInternal (line 38) | @Override
    method doLogging (line 62) | private void doLogging(LogDispatcher logDispatcher, ImageConfiguration...
    method waitForEver (line 71) | private synchronized void waitForEver() {

FILE: src/main/java/io/fabric8/maven/docker/PushMojo.java
  class PushMojo (line 20) | @Mojo(name = "push", defaultPhase = LifecyclePhase.DEPLOY)
    method executeInternal (line 42) | @Override
    method executeDockerPush (line 55) | private void executeDockerPush(ServiceHub hub) throws MojoExecutionExc...
    method executeJibPush (line 59) | private void executeJibPush(ServiceHub hub) throws MojoExecutionExcept...

FILE: src/main/java/io/fabric8/maven/docker/RemoveMojo.java
  class RemoveMojo (line 51) | @Mojo(name = "remove", defaultPhase = LifecyclePhase.POST_INTEGRATION_TEST)
    method executeInternal (line 71) | @Override
    method imageShouldBeRemoved (line 94) | private boolean imageShouldBeRemoved(ImageConfiguration image) {
    method getImageNamesMatchingPattern (line 114) | private Collection<String> getImageNamesMatchingPattern(ServiceHub hub...
    method getImageNamesToRemoveForMojo (line 123) | private Collection<String> getImageNamesToRemoveForMojo(ServiceHub hub)
    method getImageNamesToRemoveForImage (line 139) | private Collection<String> getImageNamesToRemoveForImage(ServiceHub hu...
    method getImageNameMatcher (line 156) | private Matcher getImageNameMatcher(String removeNamePattern) throws M...
    method removeImage (line 171) | private void removeImage(ServiceHub hub, String name) throws DockerAcc...
    method getImageBuildTags (line 180) | private List<String> getImageBuildTags(ImageConfiguration image){

FILE: src/main/java/io/fabric8/maven/docker/RunMojo.java
  class RunMojo (line 27) | @Mojo(name = "run", defaultPhase = LifecyclePhase.PRE_INTEGRATION_TEST)
    method followLogs (line 30) | @Override

FILE: src/main/java/io/fabric8/maven/docker/SaveMojo.java
  class SaveMojo (line 21) | @Mojo(name = "save")
    method executeInternal (line 45) | @Override
    method skipSaveFor (line 73) | private boolean skipSaveFor(List<ImageConfiguration> images) {
    method getFileName (line 89) | private String getFileName(String iName) throws MojoExecutionException {
    method getConfiguredFileName (line 105) | private String getConfiguredFileName() {
    method completeCalculatedFileName (line 117) | private String completeCalculatedFileName(String file) throws MojoExec...
    method ensureSaveDir (line 121) | private void ensureSaveDir(String fileName) throws MojoExecutionExcept...
    method getImageToSave (line 130) | private ImageConfiguration getImageToSave(List<ImageConfiguration> ima...
    method getImagesWithBuildConfig (line 152) | private List<ImageConfiguration> getImagesWithBuildConfig(List<ImageCo...
    method getClassifier (line 162) | private String getClassifier(ImageConfiguration image) {
    method equalAlias (line 171) | private boolean equalAlias(ImageConfiguration ic) {
    method equalName (line 175) | private boolean equalName(ImageConfiguration ic) {

FILE: src/main/java/io/fabric8/maven/docker/SourceMojo.java
  class SourceMojo (line 47) | @Mojo(name = "source", defaultPhase = LifecyclePhase.PACKAGE)
    method executeInternal (line 67) | @Override
    method getClassifier (line 100) | private String getClassifier(String alias) {
    method getArchiveType (line 109) | private String getArchiveType(ImageConfiguration imageConfig) {
    method isDockerAccessRequired (line 113) | @Override

FILE: src/main/java/io/fabric8/maven/docker/StartMojo.java
  class StartMojo (line 56) | @Mojo(name = "start", defaultPhase = LifecyclePhase.PRE_INTEGRATION_TEST)
    class StartedContainer (line 106) | private static final class StartedContainer {
      method StartedContainer (line 110) | private StartedContainer(ImageConfiguration imageConfig, String cont...
    method executeInternal (line 119) | @Override
    method waitForStartedContainer (line 205) | private void waitForStartedContainer(
    method followLogs (line 223) | protected Boolean followLogs() {
    method hasBeenAllImagesStarted (line 228) | private boolean hasBeenAllImagesStarted(Queue<ImageConfiguration> imag...
    method shutdownExecutorService (line 232) | private void shutdownExecutorService(ExecutorService executorService) {
    method rethrowCause (line 244) | private void rethrowCause(ExecutionException e) throws IOException, In...
    method updateAliasesSet (line 260) | private void updateAliasesSet(Set<String> aliasesSet, String alias) {
    method startImage (line 269) | private void startImage(final ImageConfiguration imageConfig,
    method getImagesWhoseDependenciesHasStarted (line 309) | private List<ImageConfiguration> getImagesWhoseDependenciesHasStarted(...
    method prepareStart (line 327) | private Queue<ImageConfiguration> prepareStart(ServiceHub hub, QuerySe...
    method extractBindMounts (line 358) | private List<String> extractBindMounts(RunVolumeConfiguration volumeCo...
    method determinePullPolicy (line 365) | private String determinePullPolicy(RunImageConfiguration runConfig) {
    method filterOutNonAliases (line 369) | private List<String> filterOutNonAliases(Set<String> imageAliases, Lis...
    method getExecutorService (line 379) | private ExecutorService getExecutorService() {

FILE: src/main/java/io/fabric8/maven/docker/StopMojo.java
  class StopMojo (line 48) | @Mojo(name = "stop", defaultPhase = LifecyclePhase.POST_INTEGRATION_TEST)
    method executeInternal (line 75) | @Override
    method stopContainers (line 95) | private void stopContainers(QueryService queryService, RunService runS...
    method getContainersForPattern (line 143) | private Collection<Container> getContainersForPattern(QueryService que...
    method getContainersForMojo (line 152) | private Collection<Container> getContainersForMojo(QueryService queryS...
    method getContainersForImage (line 169) | private Collection<Container> getContainersForImage(QueryService query...
    method getImageNameMatcher (line 191) | private Matcher getImageNameMatcher(String stopNamePattern) throws Moj...
    method getContainerNameMatcher (line 206) | private Matcher getContainerNameMatcher(String stopNamePattern) throws...
    method containerMatchesPattern (line 221) | private boolean containerMatchesPattern(Container container, Matcher i...
    method shouldStopContainer (line 234) | private boolean shouldStopContainer(Container container, GavLabel gavL...
    method isStopAllContainers (line 243) | private boolean isStopAllContainers() {
    method invokedTogetherWithDockerStart (line 247) | private boolean invokedTogetherWithDockerStart() {
    method getNetworksToRemove (line 252) | private Set<Network> getNetworksToRemove(QueryService queryService, Ga...
    method getNetworkByName (line 286) | private Network getNetworkByName(Set<Network> networks, String network...

FILE: src/main/java/io/fabric8/maven/docker/TagMojo.java
  class TagMojo (line 17) | @Mojo(name = "tag", defaultPhase = LifecyclePhase.INSTALL)
    method executeInternal (line 28) | @Override

FILE: src/main/java/io/fabric8/maven/docker/VolumeCreateMojo.java
  class VolumeCreateMojo (line 18) | @Mojo(name = "volume-create", defaultPhase = LifecyclePhase.PRE_INTEGRAT...
    method executeInternal (line 21) | @Override

FILE: src/main/java/io/fabric8/maven/docker/VolumeRemoveMojo.java
  class VolumeRemoveMojo (line 18) | @Mojo(name = "volume-remove", defaultPhase = LifecyclePhase.POST_INTEGRA...
    method executeInternal (line 21) | @Override

FILE: src/main/java/io/fabric8/maven/docker/WatchMojo.java
  class WatchMojo (line 43) | @Mojo(name = "watch")
    method executeInternal (line 76) | @Override
    method getWatchContext (line 86) | protected WatchService.WatchContext getWatchContext(ServiceHub hub) th...
    method showLogs (line 108) | private String showLogs() {
    method follow (line 112) | private boolean follow() {

FILE: src/main/java/io/fabric8/maven/docker/access/AuthConfig.java
  class AuthConfig (line 17) | public class AuthConfig {
    method AuthConfig (line 35) | public AuthConfig(Map<String,String> params) {
    method AuthConfig (line 43) | public AuthConfig(String username, String password, String email, Stri...
    method AuthConfig (line 47) | public AuthConfig(String username, String password, String email, Stri...
    method AuthConfig (line 62) | public AuthConfig(String credentialsEncoded, String email) {
    method AuthConfig (line 72) | public AuthConfig(String credentialsEncoded, String email, String iden...
    method getUsername (line 83) | public String getUsername() {
    method getPassword (line 87) | public String getPassword() {
    method getAuth (line 91) | public String getAuth() {
    method getIdentityToken (line 95) | public String getIdentityToken() {
    method toHeaderValue (line 99) | public String toHeaderValue() {
    method createAuthEncoded (line 105) | private String createAuthEncoded() {
    method encodeBase64ChunkedURLSafeString (line 130) | private String encodeBase64ChunkedURLSafeString(final byte[] binaryDat...
    method putNonNull (line 136) | private void putNonNull(JsonObject ret, String key, String value) {

FILE: src/main/java/io/fabric8/maven/docker/access/BuildOptions.java
  class BuildOptions (line 28) | public class BuildOptions {
    method BuildOptions (line 32) | public BuildOptions() {
    method BuildOptions (line 36) | public BuildOptions(Map<String, String> options) {
    method addOption (line 40) | public BuildOptions addOption(String key, String value) {
    method dockerfile (line 45) | public BuildOptions dockerfile(String name) {
    method forceRemove (line 52) | public BuildOptions forceRemove(boolean forceRm) {
    method noCache (line 59) | public BuildOptions noCache(boolean noCache) {
    method squash (line 64) | public BuildOptions squash(boolean squash) {
    method cacheFrom (line 69) | public BuildOptions cacheFrom(List<String> cacheFrom) {
    method buildArgs (line 78) | public BuildOptions buildArgs(Map<String, String> buildArgs) {
    method network (line 85) | public BuildOptions network(String network) {
    method getOptions (line 92) | public Map<String, String> getOptions() {

FILE: src/main/java/io/fabric8/maven/docker/access/ContainerCreateConfig.java
  class ContainerCreateConfig (line 21) | public class ContainerCreateConfig {
    method ContainerCreateConfig (line 26) | public ContainerCreateConfig(String imageName) {
    method binds (line 31) | public ContainerCreateConfig binds(List<String> volumes) {
    method command (line 44) | public ContainerCreateConfig command(Arguments command) {
    method domainname (line 51) | public ContainerCreateConfig domainname(String domainname) {
    method entrypoint (line 55) | public ContainerCreateConfig entrypoint(Arguments entrypoint) {
    method environment (line 62) | public ContainerCreateConfig environment(String envPropsFile, Map<Stri...
    method labels (line 91) | public ContainerCreateConfig labels(Map<String,String> labels) {
    method exposedPorts (line 98) | public ContainerCreateConfig exposedPorts(Set<String> portSpecs) {
    method getImageName (line 109) | public String getImageName() {
    method hostname (line 113) | public ContainerCreateConfig hostname(String hostname) {
    method user (line 117) | public ContainerCreateConfig user(String user) {
    method workingDir (line 121) | public ContainerCreateConfig workingDir(String workingDir) {
    method hostConfig (line 125) | public ContainerCreateConfig hostConfig(ContainerHostConfig startConfi...
    method networkingConfig (line 129) | public ContainerCreateConfig networkingConfig(ContainerNetworkingConfi...
    method toJson (line 138) | public String toJson() {
    method add (line 144) | private ContainerCreateConfig add(String name, String value) {
    method add (line 151) | private ContainerCreateConfig add(String name, JsonObject value) {
    method extractContainerPath (line 158) | private String extractContainerPath(String volume) {
    method addEnvironment (line 169) | private void addEnvironment(Properties envProps) {
    method addPropertiesFromFile (line 183) | private void addPropertiesFromFile(String envPropsFile, Properties env...

FILE: src/main/java/io/fabric8/maven/docker/access/ContainerHostConfig.java
  class ContainerHostConfig (line 17) | public class ContainerHostConfig {
    method ContainerHostConfig (line 21) | public ContainerHostConfig() {}
    method binds (line 23) | public ContainerHostConfig binds(List<String> bind) {
    method capAdd (line 39) | public ContainerHostConfig capAdd(List<String> capAdd) {
    method capDrop (line 43) | public ContainerHostConfig capDrop(List<String> capDrop) {
    method securityOpts (line 47) | public ContainerHostConfig securityOpts(List<String> securityOpt) {
    method memory (line 51) | public ContainerHostConfig memory(Long memory) {
    method memorySwap (line 55) | public ContainerHostConfig memorySwap(Long memorySwap) {
    method dns (line 59) | public ContainerHostConfig dns(List<String> dns) {
    method networkMode (line 63) | public ContainerHostConfig networkMode(String net) {
    method dnsSearch (line 67) | public ContainerHostConfig dnsSearch(List<String> dnsSearch) {
    method cpuShares (line 71) | public ContainerHostConfig cpuShares(Long cpuShares) {
    method cpus (line 75) | public ContainerHostConfig cpus(Long cpus) {
    method cpuSet (line 79) | public ContainerHostConfig cpuSet(String cpuSet) {
    method extraHosts (line 83) | public ContainerHostConfig extraHosts(List<String> extraHosts) throws ...
    method volumesFrom (line 103) | public ContainerHostConfig volumesFrom(List<String> volumesFrom) {
    method ulimits (line 107) | public ContainerHostConfig ulimits(List<UlimitConfig> ulimitsConfig) {
    method addIfNotNull (line 123) | private void addIfNotNull(JsonObject json, String key, Integer value) {
    method links (line 129) | public ContainerHostConfig links(List<String> links) {
    method portBindings (line 133) | public ContainerHostConfig portBindings(PortMapping portMapping) {
    method privileged (line 141) | public ContainerHostConfig privileged(Boolean privileged) {
    method tmpfs (line 145) | public ContainerHostConfig tmpfs(List<String> mounts) {
    method shmSize (line 161) | public ContainerHostConfig shmSize(Long shmSize) {
    method restartPolicy (line 165) | public ContainerHostConfig restartPolicy(String name, int retry) {
    method logConfig (line 176) | public ContainerHostConfig logConfig(LogConfiguration logConfig) {
    method readonlyRootfs (line 198) | public ContainerHostConfig readonlyRootfs(Boolean readOnly) {
    method autoRemove (line 202) | public ContainerHostConfig autoRemove(Boolean autoRemove) {
    method toJson (line 211) | public String toJson() {
    method toJsonObject (line 215) | public JsonObject toJsonObject() {
    method addAsArray (line 219) | ContainerHostConfig addAsArray(String propKey, List<String> props) {
    method add (line 226) | private ContainerHostConfig add(String name, String value) {
    method add (line 233) | private ContainerHostConfig add(String name, Boolean value) {
    method add (line 240) | private ContainerHostConfig add(String name, Long value) {

FILE: src/main/java/io/fabric8/maven/docker/access/ContainerNetworkingConfig.java
  class ContainerNetworkingConfig (line 8) | public class ContainerNetworkingConfig {
    method aliases (line 18) | public ContainerNetworkingConfig aliases(NetworkConfig config) {
    method toJson (line 29) | public String toJson() {
    method toJsonObject (line 33) | public JsonObject toJsonObject() {

FILE: src/main/java/io/fabric8/maven/docker/access/DockerAccess.java
  type DockerAccess (line 24) | public interface DockerAccess {
    method getServerApiVersion (line 32) | String getServerApiVersion() throws DockerAccessException;
    method getContainer (line 41) | ContainerDetails getContainer(String containerIdOrName) throws DockerA...
    method getExecContainer (line 50) | ExecDetails getExecContainer(String containerIdOrName) throws DockerAc...
    method hasImage (line 58) | boolean hasImage(String name) throws DockerAccessException;
    method getImageId (line 66) | String getImageId(String name) throws DockerAccessException;
    method listContainers (line 75) | List<Container> listContainers(boolean all) throws DockerAccessException;
    method getContainersForImage (line 86) | List<Container> getContainersForImage(String image, boolean all) throw...
    method startExecContainer (line 97) | void startExecContainer(String containerId, LogOutputSpec outputSpec) ...
    method createExecContainer (line 106) | String createExecContainer(String containerId, Arguments arguments) th...
    method createContainer (line 117) | String createContainer(ContainerCreateConfig configuration, String con...
    method startContainer (line 125) | void startContainer(String containerId) throws DockerAccessException;
    method stopContainer (line 134) | void stopContainer(String containerId, int killWait) throws DockerAcce...
    method killContainer (line 142) | void killContainer(String containerId) throws DockerAccessException;
    method copyArchive (line 153) | void copyArchive(String containerId, File archive, String targetPath)
    method getLogSync (line 162) | void getLogSync(String containerId, LogCallback callback);
    method getLogAsync (line 172) | LogGetHandle getLogAsync(String containerId, LogCallback callback);
    method removeContainer (line 181) | void removeContainer(String containerId, boolean removeVolumes) throws...
    method listImages (line 189) | List<Image> listImages(boolean all) throws DockerAccessException;
    method loadImage (line 198) | void loadImage(String image, File tarArchive) throws DockerAccessExcep...
    method pullImage (line 208) | void pullImage(String image, AuthConfig authConfig, String registry) t...
    method pushImage (line 223) | void pushImage(String image, AuthConfig authConfig, String registry, i...
    method buildImage (line 233) | void buildImage(String image, File dockerArchive, BuildOptions options...
    method tag (line 244) | void tag(String sourceImage, String targetImage, boolean force) throws...
    method removeImage (line 254) | boolean removeImage(String image, boolean ... force) throws DockerAcce...
    method saveImage (line 264) | void saveImage(String image, String filename, ArchiveCompression compr...
    method listNetworks (line 272) | List<Network> listNetworks() throws DockerAccessException;
    method createNetwork (line 281) | String createNetwork(NetworkCreateConfig configuration) throws DockerA...
    method removeNetwork (line 290) | boolean removeNetwork(String networkId) throws DockerAccessException;
    method start (line 295) | void start() throws DockerAccessException;
    method shutdown (line 301) | void shutdown();
    method createVolume (line 310) | String createVolume(VolumeCreateConfig configuration) throws DockerAcc...
    method removeVolume (line 317) | void removeVolume(String name) throws DockerAccessException;

FILE: src/main/java/io/fabric8/maven/docker/access/DockerAccessException.java
  class DockerAccessException (line 11) | public class DockerAccessException extends IOException {
    method DockerAccessException (line 19) | public DockerAccessException(Throwable cause, String message) {
    method DockerAccessException (line 23) | public DockerAccessException(String message) {
    method DockerAccessException (line 27) | public DockerAccessException(String format, Object...args) {
    method DockerAccessException (line 31) | public DockerAccessException(Throwable cause, String format, Object .....
    method getMessage (line 35) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/DockerConnectionDetector.java
  class DockerConnectionDetector (line 12) | public class DockerConnectionDetector {
    method DockerConnectionDetector (line 16) | public DockerConnectionDetector(List<DockerHostProvider> externalProvi...
    method getDefaultEnvProviders (line 25) | private Collection<? extends DockerHostProvider> getDefaultEnvProvider...
    type DockerHostProvider (line 35) | public interface DockerHostProvider {
      method getConnectionParameter (line 42) | ConnectionParameter getConnectionParameter(String certPath) throws I...
      method getPriority (line 51) | int getPriority();
      class Comparator (line 53) | class Comparator implements java.util.Comparator<DockerHostProvider> {
        method compare (line 54) | @Override
    method detectConnectionParameter (line 73) | public ConnectionParameter detectConnectionParameter(String dockerHost...
    class EnvDockerHostProvider (line 91) | class EnvDockerHostProvider implements DockerHostProvider {
      method getConnectionParameter (line 92) | @Override
      method getPriority (line 98) | @Override
    class UnixSocketDockerHostProvider (line 105) | class UnixSocketDockerHostProvider implements DockerHostProvider {
      method getConnectionParameter (line 106) | @Override
      method getPriority (line 116) | @Override
    class WindowsPipeDockerHostProvider (line 123) | class WindowsPipeDockerHostProvider implements DockerHostProvider {
      method getConnectionParameter (line 124) | @Override
      method getPriority (line 134) | @Override
    class ConnectionParameter (line 140) | public static class ConnectionParameter {
      method ConnectionParameter (line 144) | public ConnectionParameter(String url, String certPath) throws IOExc...
      method getUrl (line 149) | public String getUrl() {
      method getCertPath (line 153) | public String getCertPath() {
      method initCertPath (line 166) | private void initCertPath(String certPath) throws IOException {

FILE: src/main/java/io/fabric8/maven/docker/access/DockerMachine.java
  class DockerMachine (line 14) | public class DockerMachine implements DockerConnectionDetector.DockerHos...
    method DockerMachine (line 21) | public DockerMachine(Logger log, DockerMachineConfiguration machine) {
    type Status (line 26) | enum Status {
    method getConnectionParameter (line 30) | public synchronized DockerConnectionDetector.ConnectionParameter getCo...
    method getPriority (line 45) | @Override
    method getEnvironment (line 51) | private Map<String, String> getEnvironment() throws IOException {
    method lazyInit (line 56) | private synchronized void lazyInit() throws IOException {
    class MachineEnvCommand (line 81) | private class MachineEnvCommand extends EnvCommand {
      method MachineEnvCommand (line 83) | MachineEnvCommand() {
      method getArgs (line 87) | @Override
    class StatusCommand (line 95) | private class StatusCommand extends ExternalCommand {
      method StatusCommand (line 100) | StatusCommand() {
      method getArgs (line 104) | @Override
      method processLine (line 109) | @Override
      method getStatus (line 121) | public Status getStatus() throws IOException {
    class CreateCommand (line 139) | private class CreateCommand extends ExternalCommand {
      method CreateCommand (line 143) | CreateCommand() {
      method getArgs (line 147) | @Override
      method start (line 165) | @Override
      method end (line 174) | @Override
    class StartCommand (line 181) | private class StartCommand extends ExternalCommand {
      method StartCommand (line 185) | StartCommand() {
      method getArgs (line 189) | @Override
      method start (line 194) | @Override
      method end (line 200) | @Override
    class RegenerateCertsCommand (line 207) | private class RegenerateCertsCommand extends ExternalCommand {
      method RegenerateCertsCommand (line 211) | RegenerateCertsCommand() {
      method getArgs (line 215) | @Override
      method start (line 220) | @Override
      method end (line 226) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/ExecException.java
  class ExecException (line 14) | public class ExecException extends Exception {
    method ExecException (line 15) | public ExecException(ExecDetails details, ContainerDetails container) {

FILE: src/main/java/io/fabric8/maven/docker/access/KeyStoreUtil.java
  class KeyStoreUtil (line 22) | public class KeyStoreUtil {
    method createDockerKeyStore (line 39) | public static KeyStore createDockerKeyStore(String certPath) throws IO...
    method loadPrivateKey (line 51) | static PrivateKey loadPrivateKey(String keyPath) throws IOException, G...
    method generatePrivateKey (line 67) | private static PrivateKey generatePrivateKey(PrivateKeyInfo keyInfo) t...
    method addCA (line 71) | private static void addCA(KeyStore keyStore, String caPath) throws IOE...
    method loadCertificates (line 80) | private static Certificate[] loadCertificates(String certPath) throws ...

FILE: src/main/java/io/fabric8/maven/docker/access/NetworkCreateConfig.java
  class NetworkCreateConfig (line 5) | public class NetworkCreateConfig {
    method NetworkCreateConfig (line 9) | public NetworkCreateConfig(String name) {
    method getName (line 14) | public String getName() {
    method toJson (line 23) | public String toJson() {

FILE: src/main/java/io/fabric8/maven/docker/access/PortMapping.java
  class PortMapping (line 29) | public class PortMapping {
    method PortMapping (line 74) | public PortMapping(List<String> portMappings, Properties projPropertie...
    method needsPropertiesUpdate (line 87) | public boolean needsPropertiesUpdate() {
    method getContainerPorts (line 94) | public Set<String> getContainerPorts() {
    method updateProperties (line 104) | public void updateProperties(Map<String, Container.PortBinding> docker...
    method toDockerPortBindingsJson (line 133) | JsonObject toDockerPortBindingsJson() {
    method toJson (line 166) | public JsonArray toJson() {
    method getBindToHostMap (line 208) | Map<String, String> getBindToHostMap() {
    method getContainerPortToHostPortMap (line 213) | Map<String, Integer> getContainerPortToHostPortMap() {
    method getHostIpVariableMap (line 218) | Map<String, String> getHostIpVariableMap() {
    method getHostPortVariableMap (line 223) | Map<String, Integer> getHostPortVariableMap() {
    method getPortsMap (line 228) | Map<String, Integer> getPortsMap() {
    method createInvalidMappingError (line 232) | private IllegalArgumentException createInvalidMappingError(String mapp...
    method createMapping (line 238) | private void createMapping(String[] parts, String protocol) {
    method createPortSpec (line 248) | private String createPortSpec(String port, String protocol) throws Num...
    method getAsIntOrNull (line 252) | private Integer getAsIntOrNull(String val) {
    method getPortFromProjectOrSystemProperty (line 262) | private Integer getPortFromProjectOrSystemProperty(String var) {
    method extractPortPropertyName (line 273) | private String extractPortPropertyName(String name) {
    method mapBindToAndHostPortSpec (line 278) | private void mapBindToAndHostPortSpec(String bindTo, String hPort, Str...
    method extractHostPropertyName (line 296) | private String extractHostPropertyName(String name) {
    method mapHostPortToSpec (line 304) | private void mapHostPortToSpec(String hPort, String portSpec) {
    method parsePortMapping (line 328) | private void parsePortMapping(String input) throws IllegalArgumentExce...
    method resolveHostname (line 345) | private String resolveHostname(String bindToHost) {
    method update (line 353) | private <T> void update(Map<String, T> map, String key, T value) {
    method updateDynamicProperties (line 359) | private void updateDynamicProperties(Map<String, ?> dynamicPorts) {
    class PropertyWriteHelper (line 370) | public static class PropertyWriteHelper {
      method PropertyWriteHelper (line 377) | public PropertyWriteHelper(String globalFile) {
      method add (line 384) | public void add(PortMapping portMapping, String portPropertyFile) {
      method write (line 392) | public void write() throws IOException {
      method writeProperties (line 404) | private void writeProperties(Properties props, String file) throws I...

FILE: src/main/java/io/fabric8/maven/docker/access/UrlBuilder.java
  class UrlBuilder (line 15) | public final class UrlBuilder {
    method UrlBuilder (line 22) | public UrlBuilder(String baseUrl, String apiVersion) {
    method buildImage (line 27) | public String buildImage(String image, BuildOptions options) {
    method copyArchive (line 36) | public String copyArchive(String containerId, String targetPath) {
    method inspectImage (line 42) | public String inspectImage(String name) {
    method listImages (line 47) | public String listImages(boolean all) {
    method containerLogs (line 53) | public String containerLogs(String containerId, boolean follow) {
    method createContainer (line 62) | public String createContainer(String name) {
    method version (line 68) | public String version() {
    method deleteImage (line 72) | public String deleteImage(String name, boolean force) {
    method getImage (line 78) | public String getImage(ImageName name) {
    method inspectContainer (line 83) | public String inspectContainer(String containerId) {
    method inspectExecContainer (line 88) | public String inspectExecContainer(String containerId) {
    method listContainers (line 93) | public String listContainers(boolean all, String ... filter) {
    method loadImage (line 99) | public String loadImage() {
    method pullImage (line 104) | public String pullImage(ImageName name, String registry) {
    method pushImage (line 111) | public String pushImage(ImageName name, String registry) {
    method removeContainer (line 119) | public String removeContainer(String containerId, boolean removeVolume...
    method startContainer (line 125) | public String startContainer(String containerId) {
    method createExecContainer (line 130) | public String createExecContainer(String containerId) {
    method startExecContainer (line 135) | public String startExecContainer(String containerId) {
    method stopContainer (line 140) | public String stopContainer(String containerId, int killWait) {
    method killContainer (line 148) | public String killContainer(String containerId) {
    method tagContainer (line 153) | public String tagContainer(ImageName source, ImageName target, boolean...
    method listNetworks (line 161) | public String listNetworks() {
    method createNetwork (line 166) | public String createNetwork() {
    method removeNetwork (line 171) | public String removeNetwork(String id) {
    method createVolume (line 176) | public String createVolume() {
    method removeVolume (line 180) | public String removeVolume(String name) {
    method getBaseUrl (line 184) | public String getBaseUrl() {
    method encode (line 190) | @SuppressWarnings("deprecation")
    method stripSlash (line 201) | private String stripSlash(String url) {
    method u (line 210) | private Builder u(String format, String ... args) {
    method encodeArgs (line 214) | private String[] encodeArgs(String[] args) {
    method createUrl (line 223) | private String createUrl(String path) {
    method addFilters (line 227) | private void addFilters(Builder builder, String... filter) {
    class Builder (line 242) | private static class Builder {
      method Builder (line 247) | public Builder(String url) {
      method p (line 251) | private Builder p(Map<String, String> params) {
      method p (line 256) | private Builder p(String key, String value) {
      method p (line 263) | private Builder p(String key, boolean value) {
      method p (line 267) | private Builder p(String key, int value) {
      method build (line 271) | public String build() {

FILE: src/main/java/io/fabric8/maven/docker/access/VolumeCreateConfig.java
  class VolumeCreateConfig (line 9) | public class VolumeCreateConfig
    method VolumeCreateConfig (line 13) | public VolumeCreateConfig(String name) {
    method driver (line 17) | public VolumeCreateConfig driver(String driver) {
    method opts (line 21) | public VolumeCreateConfig opts(Map<String, String> opts) {
    method labels (line 28) | public VolumeCreateConfig labels(Map<String,String> labels) {
    method getName (line 35) | public String getName() {
    method toJson (line 44) | public String toJson() {
    method add (line 50) | private VolumeCreateConfig add(String name, JsonObject value) {
    method add (line 57) | private VolumeCreateConfig add(String name, String value) {

FILE: src/main/java/io/fabric8/maven/docker/access/chunked/BuildJsonResponseHandler.java
  class BuildJsonResponseHandler (line 8) | public class BuildJsonResponseHandler implements EntityStreamReaderUtil....
    method BuildJsonResponseHandler (line 12) | public BuildJsonResponseHandler(Logger log) {
    method process (line 16) | @Override
    method start (line 40) | @Override
    method stop (line 43) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/chunked/EntityStreamReaderUtil.java
  class EntityStreamReaderUtil (line 15) | public class EntityStreamReaderUtil {
    method EntityStreamReaderUtil (line 17) | private EntityStreamReaderUtil() {}
    method processJsonStream (line 19) | public static void processJsonStream(JsonEntityResponseHandler handler...
    type JsonEntityResponseHandler (line 34) | public interface JsonEntityResponseHandler {
      method process (line 35) | void process(JsonObject toProcess) throws DockerAccessException;
      method start (line 36) | void start();
      method stop (line 37) | void stop();

FILE: src/main/java/io/fabric8/maven/docker/access/chunked/PullOrPushResponseJsonHandler.java
  class PullOrPushResponseJsonHandler (line 8) | public class PullOrPushResponseJsonHandler implements EntityStreamReader...
    method PullOrPushResponseJsonHandler (line 12) | public PullOrPushResponseJsonHandler(Logger log) {
    method process (line 16) | @Override
    method logInfoMessage (line 31) | private void logInfoMessage(JsonObject json) {
    method throwDockerAccessException (line 43) | private void throwDockerAccessException(JsonObject json) throws Docker...
    method getStringOrEmpty (line 49) | private String getStringOrEmpty(JsonObject json, String what) {
    method start (line 53) | @Override
    method stop (line 58) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/ecr/AwsSigner4.java
  class AwsSigner4 (line 29) | class AwsSigner4 {
    method AwsSigner4 (line 43) | AwsSigner4(String region, String service) {
    method sign (line 55) | void sign(HttpRequest request, AuthConfig credentials, Date signingTim...
    method task1 (line 71) | String task1(AwsSigner4Request sr) {
    method task2 (line 86) | String task2(AwsSigner4Request sr) {
    method task3 (line 98) | final byte[] task3(AwsSigner4Request sr, AuthConfig credentials) {
    method getSigningKey (line 102) | private static byte[] getSigningKey(AwsSigner4Request sr, AuthConfig c...
    method task4 (line 114) | String task4(AwsSigner4Request sr, AuthConfig credentials) {
    method getCanonicalQuery (line 123) | private String getCanonicalQuery(URI uri) {
    method hexEncode (line 138) | static void hexEncode(StringBuilder dst, byte[] src) {
    method hmacSha256 (line 146) | private static byte[] hmacSha256(byte[] key, String value) {
    method sha256 (line 157) | private static byte[] sha256(String string) {
    method sha256 (line 161) | private static byte[] sha256(byte[] bytes) {

FILE: src/main/java/io/fabric8/maven/docker/access/ecr/AwsSigner4Request.java
  class AwsSigner4Request (line 28) | public class AwsSigner4Request {
    method AwsSigner4Request (line 52) | AwsSigner4Request(String region, String service, HttpRequest request, ...
    method getRegion (line 68) | public String getRegion() {
    method getService (line 72) | public String getService() {
    method getSigningDate (line 76) | public String getSigningDate() {
    method getSigningDateTime (line 80) | public String getSigningDateTime() {
    method getScope (line 84) | public String getScope() {
    method getMethod (line 88) | public String getMethod() {
    method getUri (line 92) | public URI getUri() {
    method getCanonicalHeaders (line 96) | public String getCanonicalHeaders() {
    method getSignedHeaders (line 100) | public String getSignedHeaders() {
    method getSigningDateTime (line 104) | private static String getSigningDateTime(HttpRequest request, Date sig...
    method getUri (line 114) | private static URI getUri(HttpRequest request) {
    method createUri (line 121) | private static URI createUri(String authority, String uri) {
    method getOrderedHeadersToSign (line 157) | private static Map<String, String> getOrderedHeadersToSign(Header[] he...
    method canonicalHeaders (line 193) | private static String canonicalHeaders(Map<String, String> headers) {
    method getBytes (line 201) | byte[] getBytes() {

FILE: src/main/java/io/fabric8/maven/docker/access/ecr/EcrExtendedAuth.java
  class EcrExtendedAuth (line 33) | public class EcrExtendedAuth {
    method isAwsRegistry (line 49) | public static boolean isAwsRegistry(String registry) {
    method EcrExtendedAuth (line 58) | public EcrExtendedAuth(Logger logger, String registry) {
    method isAwsRegistry (line 76) | public boolean isAwsRegistry() {
    method extendedAuth (line 89) | public AuthConfig extendedAuth(AuthConfig localCredentials) throws IOE...
    method getAuthorizationToken (line 99) | private JsonObject getAuthorizationToken(AuthConfig localCredentials) ...
    method createClient (line 104) | CloseableHttpClient createClient() {
    method executeRequest (line 108) | private JsonObject executeRequest(CloseableHttpClient client, HttpPost...
    method createSignedRequest (line 126) | HttpPost createSignedRequest(AuthConfig localCredentials, Date time) {

FILE: src/main/java/io/fabric8/maven/docker/access/hc/ApacheHttpClientDelegate.java
  class ApacheHttpClientDelegate (line 27) | public class ApacheHttpClientDelegate {
    method ApacheHttpClientDelegate (line 32) | public ApacheHttpClientDelegate(ClientBuilder clientBuilder, boolean p...
    method createBasicClient (line 37) | public CloseableHttpClient createBasicClient()  {
    method getHttpClient (line 45) | public CloseableHttpClient getHttpClient() {
    method close (line 49) | public void close() throws IOException {
    method delete (line 53) | public int delete(String url, int... statusCodes) throws IOException {
    class StatusCodeResponseHandler (line 57) | public static class StatusCodeResponseHandler implements ResponseHandl...
      method handleResponse (line 58) | @Override
    method delete (line 66) | public <T> T delete(String url, ResponseHandler<T> responseHandler, in...
    method get (line 73) | public String get(String url, int... statusCodes) throws IOException {
    method get (line 78) | public <T> T get(String url, ResponseHandler<T> responseHandler, int.....
    class BodyResponseHandler (line 83) | public static class BodyResponseHandler implements ResponseHandler<Str...
      method handleResponse (line 84) | @Override
    method getResponseMessage (line 92) | private static String getResponseMessage(HttpResponse response) throws...
    method post (line 97) | public <T> T post(String url, Object body, Map<String, String> headers,
    method post (line 107) | public <T> T post(String url, Object body, ResponseHandler<T> response...
    method post (line 114) | public int post(String url, int... statusCodes) throws IOException {
    method put (line 118) | public int put(String url, Object body, int... statusCodes) throws IOE...
    method addDefaultHeaders (line 125) | private HttpUriRequest addDefaultHeaders(HttpUriRequest req) {
    method newDelete (line 132) | private HttpUriRequest newDelete(String url) {
    method newGet (line 136) | private HttpUriRequest newGet(String url) {
    method newPut (line 140) | private HttpUriRequest newPut(String url, Object body) {
    method newPost (line 146) | private HttpUriRequest newPost(String url, Object body) {
    method setEntityIfGiven (line 153) | private void setEntityIfGiven(HttpEntityEnclosingRequestBase request, ...
    class StatusCodeCheckerResponseHandler (line 163) | private static class StatusCodeCheckerResponseHandler<T> implements Re...
      method StatusCodeCheckerResponseHandler (line 168) | StatusCodeCheckerResponseHandler(ResponseHandler<T> delegate, int......
      method handleResponse (line 173) | @Override
    class BodyAndStatusResponseHandler (line 190) | public static class BodyAndStatusResponseHandler implements ResponseHa...
      method handleResponse (line 192) | @Override
    class HttpBodyAndStatus (line 200) | public static class HttpBodyAndStatus {
      method HttpBodyAndStatus (line 205) | public HttpBodyAndStatus(int statusCode, String body) {
      method getStatusCode (line 210) | public int getStatusCode() {
      method getBody (line 214) | public String getBody() {

FILE: src/main/java/io/fabric8/maven/docker/access/hc/DockerAccessWithHcClient.java
  class DockerAccessWithHcClient (line 85) | public class DockerAccessWithHcClient implements DockerAccess {
    method DockerAccessWithHcClient (line 115) | public DockerAccessWithHcClient(String baseUrl,
    method getServerApiVersion (line 142) | @Override
    method startExecContainer (line 155) | @Override
    method createExecResponseHandler (line 170) | private ResponseHandler<Object> createExecResponseHandler(LogOutputSpe...
    method createExecContainer (line 194) | @Override
    method createContainer (line 221) | @Override
    method startContainer (line 243) | @Override
    method stopContainer (line 254) | @Override
    method killContainer (line 265) | @Override
    method buildImage (line 276) | @Override
    method copyArchive (line 287) | @Override
    method getLogSync (line 300) | @Override
    method getLogAsync (line 306) | @Override
    method getContainersForImage (line 313) | @Override
    method listContainers (line 343) | @Override
    method getContainer (line 362) | @Override
    method getExecContainer (line 372) | @Override
    method inspectContainer (line 382) | private HttpBodyAndStatus inspectContainer(String containerIdOrName) t...
    method inspectExecContainer (line 391) | private HttpBodyAndStatus inspectExecContainer(String containerIdOrNam...
    method listImages (line 400) | @Override
    method hasImage (line 419) | @Override
    method getImageId (line 429) | @Override
    method inspectImage (line 439) | private HttpBodyAndStatus inspectImage(String name) throws DockerAcces...
    method removeContainer (line 448) | @Override
    method loadImage (line 460) | @Override
    method pullImage (line 472) | @Override
    method pushImage (line 486) | @Override
    method saveImage (line 503) | @Override
    method getImageResponseHandler (line 515) | private ResponseHandler<Object> getImageResponseHandler(final String f...
    method tag (line 528) | @Override
    method removeImage (line 542) | @Override
    method listNetworks (line 558) | @Override
    method createNetwork (line 577) | @Override
    method removeNetwork (line 601) | @Override
    method createVolume (line 614) | @Override
    method removeVolume (line 642) | @Override
    method start (line 656) | @Override
    method shutdown (line 660) | @Override
    method createHttpClient (line 669) | ApacheHttpClientDelegate createHttpClient(ClientBuilder builder) throw...
    method createHttpClient (line 673) | ApacheHttpClientDelegate createHttpClient(ClientBuilder builder, boole...
    method createBuildResponseHandler (line 678) | private HcChunkedResponseHandlerWrapper createBuildResponseHandler() {
    method createPullOrPushResponseHandler (line 683) | private HcChunkedResponseHandlerWrapper createPullOrPushResponseHandle...
    method createAuthHeader (line 687) | private Map<String, String> createAuthHeader(AuthConfig authConfig) {
    method isRetryableErrorCode (line 694) | private boolean isRetryableErrorCode(int errorCode) {
    method doPushImage (line 699) | private void doPushImage(String url, Map<String, String> header, HcChu...
    method tagTemporaryImage (line 716) | private TemporaryImageHandler tagTemporaryImage(ImageName name, String...
    method logWarnings (line 740) | private void logWarnings(JsonObject body) {
    method logRemoveResponse (line 753) | private void logRemoveResponse(JsonArray logElements) {
    method isSSL (line 762) | private static boolean isSSL(String url) {
    class HcChunkedResponseHandlerWrapper (line 767) | private static class HcChunkedResponseHandlerWrapper implements Respon...
      method HcChunkedResponseHandlerWrapper (line 771) | HcChunkedResponseHandlerWrapper(EntityStreamReaderUtil.JsonEntityRes...
      method handleResponse (line 775) | @Override
    method fetchApiVersionFromServer (line 785) | public String fetchApiVersionFromServer(String baseUrl, ApacheHttpClie...
    type TemporaryImageHandler (line 795) | @FunctionalInterface
      method handle (line 797) | void handle() throws DockerAccessException;
      method handle (line 799) | default void handle(@Nullable DockerAccessException interruptingErro...
    class RemovingTemporaryImageHandler (line 809) | private final class RemovingTemporaryImageHandler implements Temporary...
      method RemovingTemporaryImageHandler (line 812) | private RemovingTemporaryImageHandler(String targetImage) {
      method handle (line 816) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/http/HttpClientBuilder.java
  class HttpClientBuilder (line 41) | public class HttpClientBuilder implements ClientBuilder {
    method HttpClientBuilder (line 46) | public HttpClientBuilder(String certPath, int maxConnections) {
    method buildPooledClient (line 51) | public CloseableHttpClient buildPooledClient() throws IOException {
    method buildBasicClient (line 67) | public CloseableHttpClient buildBasicClient() throws IOException {
    method getPooledConnectionFactory (line 71) | private static HttpClientConnectionManager getPooledConnectionFactory(...
    method getBasicConnectionFactory (line 80) | private static HttpClientConnectionManager getBasicConnectionFactory(S...
    method getSslFactoryRegistry (line 86) | private static Registry<ConnectionSocketFactory> getSslFactoryRegistry...

FILE: src/main/java/io/fabric8/maven/docker/access/hc/http/HttpRequestException.java
  class HttpRequestException (line 5) | public class HttpRequestException extends IOException {
    method HttpRequestException (line 7) | public HttpRequestException(String message) {

FILE: src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixConnectionSocketFactory.java
  class UnixConnectionSocketFactory (line 12) | final class UnixConnectionSocketFactory extends AbstractNativeSocketFact...
    method UnixConnectionSocketFactory (line 14) | UnixConnectionSocketFactory(String unixSocketPath) {
    method createSocket (line 18) | @Override
    method createSocketAddress (line 23) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixSocket.java
  class UnixSocket (line 21) | final class UnixSocket extends Socket {
    method UnixSocket (line 28) | UnixSocket() throws IOException {
    method connect (line 32) | @Override
    method connect (line 37) | @Override
    method bind (line 52) | @Override
    method getInetAddress (line 57) | @Override
    method getLocalAddress (line 62) | @Override
    method getPort (line 67) | @Override
    method getLocalPort (line 72) | @Override
    method getRemoteSocketAddress (line 77) | @Override
    method getLocalSocketAddress (line 84) | @Override
    method getChannel (line 91) | @Override
    method getInputStream (line 96) | @Override
    method getOutputStream (line 118) | @Override
    method sendUrgentData (line 145) | @Override
    method setSoTimeout (line 149) | @Override
    method getSoTimeout (line 158) | @Override
    method setSendBufferSize (line 167) | @Override
    method getSendBufferSize (line 180) | @Override
    method setReceiveBufferSize (line 189) | @Override
    method getReceiveBufferSize (line 202) | @Override
    method setKeepAlive (line 211) | @Override
    method getKeepAlive (line 220) | @Override
    method setTrafficClass (line 229) | @Override
    method getTrafficClass (line 242) | @Override
    method setReuseAddress (line 247) | @Override
    method getReuseAddress (line 256) | @Override
    method close (line 261) | @Override
    method shutdownInput (line 268) | @Override
    method shutdownOutput (line 274) | @Override
    method toString (line 280) | @Override
    method isConnected (line 289) | @Override
    method isBound (line 294) | @Override
    method isClosed (line 299) | @Override
    method isInputShutdown (line 304) | @Override
    method isOutputShutdown (line 309) | @Override
    method setPerformancePreferences (line 314) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixSocketClientBuilder.java
  class UnixSocketClientBuilder (line 7) | public class UnixSocketClientBuilder extends AbstractNativeClientBuilder {
    method UnixSocketClientBuilder (line 9) | public UnixSocketClientBuilder(String unixSocketPath, int maxConnectio...
    method getConnectionSocketFactory (line 13) | @Override
    method getProtocol (line 18) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/util/AbstractNativeClientBuilder.java
  class AbstractNativeClientBuilder (line 40) | abstract public class AbstractNativeClientBuilder implements ClientBuild...
    method AbstractNativeClientBuilder (line 49) | public AbstractNativeClientBuilder(String path, int maxConnections, Lo...
    method getConnectionSocketFactory (line 57) | protected abstract ConnectionSocketFactory getConnectionSocketFactory();
    method getProtocol (line 58) | protected abstract String getProtocol();
    method buildPooledClient (line 60) | @Override
    method buildBasicClient (line 69) | @Override
    method buildRegistry (line 77) | private Registry<ConnectionSocketFactory> buildRegistry(String path) {
    method nullDnsResolver (line 83) | private  DnsResolver nullDnsResolver() {

FILE: src/main/java/io/fabric8/maven/docker/access/hc/util/AbstractNativeSocketFactory.java
  class AbstractNativeSocketFactory (line 32) | abstract public class AbstractNativeSocketFactory implements ConnectionS...
    method AbstractNativeSocketFactory (line 36) | public AbstractNativeSocketFactory(String path) {
    method connectSocket (line 40) | @Override
    method createSocketAddress (line 46) | protected abstract SocketAddress createSocketAddress(String path);
    method createSocket (line 47) | public abstract Socket createSocket(HttpContext context) throws IOExce...

FILE: src/main/java/io/fabric8/maven/docker/access/hc/util/ClientBuilder.java
  type ClientBuilder (line 29) | public interface ClientBuilder {
    method buildPooledClient (line 37) | CloseableHttpClient buildPooledClient() throws IOException;
    method buildBasicClient (line 46) | CloseableHttpClient buildBasicClient() throws IOException;

FILE: src/main/java/io/fabric8/maven/docker/access/hc/win/NamedPipe.java
  class NamedPipe (line 22) | final class NamedPipe extends Socket {
    method NamedPipe (line 38) | NamedPipe(Logger log) throws IOException {
    method connect (line 42) | @Override
    method connect (line 47) | @Override
    method bind (line 66) | @Override
    method getInetAddress (line 71) | @Override
    method getLocalAddress (line 76) | @Override
    method getPort (line 81) | @Override
    method getLocalPort (line 86) | @Override
    method getRemoteSocketAddress (line 91) | @Override
    method getLocalSocketAddress (line 96) | @Override
    method getChannel (line 101) | @Override
    method getInputStream (line 106) | @Override
    method getOutputStream (line 132) | @Override
    method sendUrgentData (line 160) | @Override
    method setSoTimeout (line 165) | @Override
    method getSoTimeout (line 169) | @Override
    method setSendBufferSize (line 174) | @Override
    method getSendBufferSize (line 187) | @Override
    method setReceiveBufferSize (line 196) | @Override
    method getReceiveBufferSize (line 209) | @Override
    method setKeepAlive (line 218) | @Override
    method getKeepAlive (line 222) | @Override
    method setTrafficClass (line 227) | @Override
    method getTrafficClass (line 240) | @Override
    method setReuseAddress (line 245) | @Override
    method getReuseAddress (line 250) | @Override
    method close (line 255) | @Override
    method shutdownInput (line 267) | @Override
    method shutdownOutput (line 272) | @Override
    method toString (line 277) | @Override
    method isConnected (line 286) | @Override
    method isBound (line 291) | @Override
    method isClosed (line 296) | @Override
    method isInputShutdown (line 301) | @Override
    method isOutputShutdown (line 306) | @Override
    method setPerformancePreferences (line 311) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/win/NamedPipeClientBuilder.java
  class NamedPipeClientBuilder (line 8) | public class NamedPipeClientBuilder extends AbstractNativeClientBuilder {
    method NamedPipeClientBuilder (line 9) | public NamedPipeClientBuilder(String namedPipePath, int maxConnections...
    method getConnectionSocketFactory (line 13) | @Override
    method getProtocol (line 18) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/win/NpipeConnectionSocketFactory.java
  class NpipeConnectionSocketFactory (line 13) | final class NpipeConnectionSocketFactory extends AbstractNativeSocketFac...
    method NpipeConnectionSocketFactory (line 18) | NpipeConnectionSocketFactory(String npipePath, Logger log) {
    method createSocket (line 23) | @Override
    method createSocketAddress (line 28) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/hc/win/NpipeSocketAddress.java
  class NpipeSocketAddress (line 5) | class NpipeSocketAddress extends java.net.SocketAddress {
    method NpipeSocketAddress (line 11) | NpipeSocketAddress(File path) {
    method path (line 15) | public String path() {
    method toString (line 19) | @Override
    method equals (line 24) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/log/LogCallback.java
  type LogCallback (line 29) | public interface LogCallback {
    method log (line 38) | void log(int type, ZonedDateTime timestamp, String txt) throws DoneExc...
    method error (line 44) | void error(String error);
    method open (line 50) | void open() throws IOException;
    method close (line 57) | void close();
    class DoneException (line 62) | class DoneException extends Exception {}

FILE: src/main/java/io/fabric8/maven/docker/access/log/LogGetHandle.java
  type LogGetHandle (line 24) | public interface LogGetHandle {
    method finish (line 26) | void finish();
    method isError (line 28) | boolean isError();
    method getException (line 30) | DockerAccessException getException();

FILE: src/main/java/io/fabric8/maven/docker/access/log/LogRequestor.java
  class LogRequestor (line 45) | public class LogRequestor extends Thread implements LogGetHandle {
    method LogRequestor (line 70) | public LogRequestor(CloseableHttpClient client, UrlBuilder urlBuilder,...
    method fetchLogs (line 83) | public void fetchLogs() {
    method run (line 99) | public void run() {
    class NoBytesReadException (line 114) | private static class NoBytesReadException extends IOException {
      method NoBytesReadException (line 115) | public NoBytesReadException() {
    method readFully (line 127) | private void readFully(InputStream in, byte[] bytes) throws IOException {
    method readStreamFrame (line 137) | private boolean readStreamFrame(InputStream is) throws IOException, Lo...
    method parseResponse (line 177) | private void parseResponse(HttpResponse response) throws LogCallback.D...
    method callLogCallback (line 193) | private void callLogCallback(int type, String txt) throws LogCallback....
    method getLogRequest (line 205) | private HttpUriRequest getLogRequest(boolean follow) {
    method finish (line 209) | @Override
    method isError (line 217) | @Override
    method getException (line 222) | @Override

FILE: src/main/java/io/fabric8/maven/docker/access/util/EnvCommand.java
  class EnvCommand (line 33) | abstract public class EnvCommand extends ExternalCommand {
    method EnvCommand (line 39) | public EnvCommand(Logger log, String prefix) {
    method processLine (line 44) | @Override
    method setEnvironmentVariable (line 57) | private void setEnvironmentVariable(String line) {
    method getEnvironment (line 67) | public Map<String, String> getEnvironment() throws IOException {

FILE: src/main/java/io/fabric8/maven/docker/access/util/ExternalCommand.java
  class ExternalCommand (line 30) | public abstract class ExternalCommand {
    method ExternalCommand (line 37) | public ExternalCommand(Logger log) {
    method execute (line 41) | public void execute() throws IOException {
    method execute (line 45) | public void execute(String processInput) throws IOException {
    method start (line 70) | protected void start() {}
    method end (line 72) | protected void end() {}
    method getStatusCode (line 74) | protected int getStatusCode() {
    method checkProcessExit (line 78) | private void checkProcessExit(Process process) {
    method inputStreamPump (line 89) | private void inputStreamPump(OutputStream outputStream,String processI...
    method startProcess (line 100) | private Process startProcess() throws IOException {
    method getCommandAsString (line 110) | protected String getCommandAsString() {
    method getArgs (line 114) | protected abstract String[] getArgs();
    method outputStreamPump (line 116) | private void outputStreamPump(final InputStream inputStream) throws IO...
    method processLine (line 132) | protected void processLine(String line) {
    method startStreamPump (line 136) | private Future<IOException> startStreamPump(final InputStream errorStr...
    method stopStreamPump (line 158) | private void stopStreamPump(Future<IOException> future) throws IOExcep...

FILE: src/main/java/io/fabric8/maven/docker/access/util/LocalSocketUtil.java
  class LocalSocketUtil (line 31) | public class LocalSocketUtil {
    method canConnectUnixSocket (line 37) | public static boolean canConnectUnixSocket(File path) {

FILE: src/main/java/io/fabric8/maven/docker/access/util/RequestUtil.java
  class RequestUtil (line 29) | public class RequestUtil {
    method newGet (line 36) | public static HttpUriRequest newGet(String url) {
    method newPost (line 40) | public static HttpUriRequest newPost(String url, String body) {
    method newDelete (line 48) | public static HttpUriRequest newDelete(String url) {
    method addDefaultHeaders (line 52) | public static HttpUriRequest addDefaultHeaders(HttpUriRequest req) {
    method encode (line 58) | @SuppressWarnings("deprecation")

FILE: src/main/java/io/fabric8/maven/docker/assembly/AllFilesExecCustomizer.java
  class AllFilesExecCustomizer (line 34) | class AllFilesExecCustomizer implements ArchiverCustomizer {
    method AllFilesExecCustomizer (line 37) | AllFilesExecCustomizer(Logger logger) {
    method customize (line 41) | @Override

FILE: src/main/java/io/fabric8/maven/docker/assembly/ArchiverCustomizer.java
  type ArchiverCustomizer (line 28) | public interface ArchiverCustomizer {
    method customize (line 29) | TarArchiver customize(TarArchiver archiver) throws IOException;

FILE: src/main/java/io/fabric8/maven/docker/assembly/AssemblyFiles.java
  class AssemblyFiles (line 29) | public class AssemblyFiles {
    method AssemblyFiles (line 39) | public AssemblyFiles(File assemblyDirectory) {
    method addEntry (line 49) | public void addEntry(File srcFile, File destFile) {
    method getUpdatedEntriesAndRefresh (line 60) | public List<Entry> getUpdatedEntriesAndRefresh() {
    method isEmpty (line 73) | public boolean isEmpty() {
    method getAssemblyDirectory (line 82) | public File getAssemblyDirectory() {
    class Entry (line 89) | public static class Entry {
      method Entry (line 95) | private Entry(File srcFile, File destFile) {
      method getSrcFile (line 110) | public File getSrcFile() {
      method getDestFile (line 117) | public File getDestFile() {
      method isUpdated (line 121) | boolean isUpdated() {

FILE: src/main/java/io/fabric8/maven/docker/assembly/BuildDirs.java
  class BuildDirs (line 30) | public class BuildDirs {
    method BuildDirs (line 41) | public BuildDirs(String imageName, MojoParameters params) {
    method getOutputDirectory (line 48) | public File getOutputDirectory() {
    method getWorkingDirectory (line 52) | public File getWorkingDirectory() {
    method getTemporaryRootDirectory (line 56) | public File getTemporaryRootDirectory() {
    method createDirs (line 60) | void createDirs() {
    method getDir (line 71) | private File getDir(String dir) {

FILE: src/main/java/io/fabric8/maven/docker/assembly/DockerAssemblyConfigurationSource.java
  class DockerAssemblyConfigurationSource (line 30) | public class DockerAssemblyConfigurationSource implements AssemblerConfi...
    method DockerAssemblyConfigurationSource (line 43) | public DockerAssemblyConfigurationSource(MojoParameters params, BuildD...
    method getDescriptors (line 49) | @Override
    method getDescriptorReferences (line 61) | @Override
    method getOutputDirectory (line 74) | @Override
    method getWorkingDirectory (line 79) | @Override
    method getTemporaryRootDirectory (line 85) | @Override
    method getFinalName (line 90) | @Override
    method getLocalRepository (line 96) | @Override
    method getMavenFileFilter (line 101) | public MavenFileFilter getMavenFileFilter() {
    method getReactorProjects (line 106) | @Override
    method getRemoteRepositories (line 112) | @Override
    method getMavenSession (line 117) | @Override
    method getJarArchiveConfiguration (line 122) | @Override
    method getEncoding (line 128) | @Override
    method getEscapeString (line 134) | @Override
    method getDelimiters (line 139) | @Override
    method getCommandLinePropsInterpolator (line 145) | @Nonnull public FixedStringSearchInterpolator getCommandLinePropsInter...
    method getEnvInterpolator (line 153) | @Nonnull
    method getRepositoryInterpolator (line 162) | @Nonnull public FixedStringSearchInterpolator getRepositoryInterpolator()
    method getMainProjectInterpolator (line 171) | @Nonnull
    method getProject (line 181) | @Override
    method getBasedir (line 187) | @Override
    method isIgnoreDirFormatExtensions (line 193) | @Override
    method isDryRun (line 199) | @Override
    method getFilters (line 205) | @Override
    method isIncludeProjectBuildFilters (line 210) | @Override
    method getDescriptorSourceDirectory (line 216) | @Override
    method getArchiveBaseDirectory (line 222) | @Override
    method getTarLongFileMode (line 228) | @Override
    method getSiteDirectory (line 234) | @Override
    method isAssemblyIdAppended (line 240) | @Override
    method isIgnoreMissingDescriptor (line 246) | @Override
    method getArchiverConfig (line 252) | @Override
    method getMavenReaderFilter (line 257) | @Override
    method isUpdateOnly (line 262) | @Override
    method isUseJvmChmod (line 267) | @Override
    method isIgnorePermissions (line 272) | @Override
    method mainProjectInterpolator (line 280) | private FixedStringSearchInterpolator mainProjectInterpolator(MavenPro...
    method createRepositoryInterpolator (line 297) | private FixedStringSearchInterpolator createRepositoryInterpolator()
    method createCommandLinePropertiesInterpolator (line 313) | private FixedStringSearchInterpolator createCommandLinePropertiesInter...
    method createEnvInterpolator (line 331) | private FixedStringSearchInterpolator createEnvInterpolator() {

FILE: src/main/java/io/fabric8/maven/docker/assembly/DockerAssemblyManager.java
  class DockerAssemblyManager (line 53) | @Component(role = DockerAssemblyManager.class, instantiationStrategy = "...
    method createDockerTarArchive (line 88) | public File createDockerTarArchive(String imageName, MojoParameters pa...
    method createDockerTarArchive (line 105) | public File createDockerTarArchive(String imageName, final MojoParamet...
    method excludeDockerfile (line 187) | private void excludeDockerfile(DefaultFileSet fileSet, File dockerFile) {
    method interpolateDockerfile (line 196) | private void interpolateDockerfile(File dockerFile, BuildDirs params, ...
    method verifyGivenDockerfile (line 205) | void verifyGivenDockerfile(File dockerFile, BuildImageConfiguration bu...
    method getAssemblyFiles (line 240) | public AssemblyFiles getAssemblyFiles(String name, BuildImageConfigura...
    method createBuildDirs (line 261) | private BuildDirs createBuildDirs(String imageName, MojoParameters par...
    method hasAssemblyConfiguration (line 267) | private boolean hasAssemblyConfiguration(AssemblyConfiguration assembl...
    method isArchive (line 274) | private boolean isArchive(AssemblyConfiguration assemblyConfig) {
    method createChangedFilesArchive (line 280) | public File createChangedFilesArchive(List<AssemblyFiles.Entry> entrie...
    method prepareChangedFilesArchivePath (line 298) | private File prepareChangedFilesArchivePath(File archiveDir, File dest...
    method createBuildTarBall (line 305) | private File createBuildTarBall(BuildDirs buildDirs, List<ArchiverCust...
    method addDockerIncludesExcludesIfPresent (line 325) | private void addDockerIncludesExcludesIfPresent(DefaultFileSet fileSet...
    method addDockerExcludes (line 330) | private void addDockerExcludes(DefaultFileSet fileSet, MojoParameters ...
    method addDockerIncludes (line 345) | private void addDockerIncludes(DefaultFileSet fileSet) throws IOExcept...
    method createChangedFilesTarBall (line 354) | private File createChangedFilesTarBall(File archive, File archiveDir) ...
    method createArchiveDir (line 372) | private File createArchiveDir(BuildDirs dirs) throws IOException, Mojo...
    method createBuildArchiver (line 385) | private TarArchiver createBuildArchiver(File outputDir, File archive, ...
    method createDockerFileBuilder (line 407) | @SuppressWarnings("deprecation")
    method createAssemblyArchive (line 456) | private void createAssemblyArchive(AssemblyConfiguration assemblyConfi...
    method ensureThatArtifactFileIsSet (line 494) | private File ensureThatArtifactFileIsSet(MavenProject project) {
    method setArtifactFile (line 519) | private void setArtifactFile(MavenProject project, File artifactFile) {
    method getAssemblyConfig (line 526) | private Assembly getAssemblyConfig(AssemblyConfiguration assemblyConfi...
    method extractAssembly (line 535) | private Assembly extractAssembly(AssemblerConfigurationSource config) ...

FILE: src/main/java/io/fabric8/maven/docker/assembly/DockerFileBuilder.java
  class DockerFileBuilder (line 22) | public class DockerFileBuilder {
    method write (line 85) | public File write(File destDir) throws IOException {
    method content (line 98) | public String content() throws IllegalArgumentException {
    method addUser (line 128) | private void addUser(StringBuilder b) {
    method addHealthCheck (line 134) | private void addHealthCheck(StringBuilder b) {
    method addWorkdir (line 157) | private void addWorkdir(StringBuilder b) {
    method addEntryPoint (line 163) | private void addEntryPoint(StringBuilder b){
    method addCmd (line 169) | private void addCmd(StringBuilder b){
    method buildArguments (line 175) | private static void buildArguments(StringBuilder b, DockerFileKeyword ...
    method buildArgumentsAsJsonFormat (line 185) | private static void buildArgumentsAsJsonFormat(StringBuilder b, Docker...
    method buildOption (line 190) | private static void buildOption(StringBuilder b, DockerFileOption opti...
    method addCopy (line 196) | private void addCopy(StringBuilder b) {
    method addCopyEntries (line 216) | private void addCopyEntries(StringBuilder b, String topLevelDir, Strin...
    method addEnv (line 227) | private void addEnv(StringBuilder b) {
    method addLabels (line 231) | private void addLabels(StringBuilder b) {
    method addMap (line 235) | private void addMap(StringBuilder b,DockerFileKeyword keyword, Map<Str...
    method createKeyValue (line 252) | private String createKeyValue(String key, String value) {
    method addPorts (line 286) | private void addPorts(StringBuilder b) {
    method validatePortExposure (line 297) | private String validatePortExposure(String input) throws IllegalArgume...
    method addOptimisation (line 312) | private void addOptimisation() {
    method addShell (line 320) | private void addShell(StringBuilder b) {
    method addRun (line 326) | private void addRun(StringBuilder b) {
    method addVolumes (line 332) | private void addVolumes(StringBuilder b) {
    method addVolume (line 342) | private void addVolume(StringBuilder buffer, String volume) {
    method DockerFileBuilder (line 354) | public DockerFileBuilder() {}
    method baseImage (line 356) | public DockerFileBuilder baseImage(String baseImage) {
    method maintainer (line 363) | public DockerFileBuilder maintainer(String maintainer) {
    method workdir (line 368) | public DockerFileBuilder workdir(String workdir) {
    method basedir (line 373) | public DockerFileBuilder basedir(String dir) {
    method cmd (line 384) | public DockerFileBuilder cmd(Arguments cmd) {
    method entryPoint (line 389) | public DockerFileBuilder entryPoint(Arguments entryPoint) {
    method assemblyUser (line 394) | public DockerFileBuilder assemblyUser(String assemblyUser) {
    method user (line 399) | public DockerFileBuilder user(String user) {
    method healthCheck (line 404) | public DockerFileBuilder healthCheck(HealthCheckConfiguration healthCh...
    method add (line 409) | public DockerFileBuilder add(String source, String destination) {
    method expose (line 414) | public DockerFileBuilder expose(List<String> ports) {
    method shell (line 426) | public DockerFileBuilder shell(Arguments shell) {
    method run (line 436) | public DockerFileBuilder run(List<String> runCmds) {
    method exportTargetDir (line 447) | public DockerFileBuilder exportTargetDir(Boolean exportTargetDir) {
    method env (line 452) | public DockerFileBuilder env(Map<String, String> values) {
    method labels (line 460) | public DockerFileBuilder labels(Map<String,String> values) {
    method volumes (line 467) | public DockerFileBuilder volumes(List<String> volumes) {
    method optimise (line 474) | public DockerFileBuilder optimise() {
    method validateMap (line 479) | private void validateMap(Map<String, String> env) {
    class CopyEntry (line 489) | private static final class CopyEntry {
      method CopyEntry (line 492) | private CopyEntry(String src, String dest) {

FILE: src/main/java/io/fabric8/maven/docker/assembly/DockerFileKeyword.java
  type DockerFileKeyword (line 9) | public enum DockerFileKeyword
    method addTo (line 35) | public void addTo(StringBuilder sb, String ... args) {
    method addTo (line 46) | public void addTo(StringBuilder sb, boolean newline, String ... args) {

FILE: src/main/java/io/fabric8/maven/docker/assembly/DockerFileOption.java
  type DockerFileOption (line 6) | public enum DockerFileOption
    method DockerFileOption (line 15) | DockerFileOption(String key) {
    method getKey (line 19) | public String getKey() {
    method addTo (line 26) | public void addTo(StringBuilder sb, Object value) {

FILE: src/main/java/io/fabric8/maven/docker/assembly/MappingTrackArchiver.java
  class MappingTrackArchiver (line 45) | @Component(role = Archiver.class, hint = "track", instantiationStrategy ...
    method getAssemblyFiles (line 59) | public AssemblyFiles getAssemblyFiles(MavenSession session) {
    method addFileEntry (line 90) | private void addFileEntry(AssemblyFiles ret, MavenSession session, Fil...
    method addLocalMavenRepoEntry (line 95) | private void addLocalMavenRepoEntry(AssemblyFiles ret, MavenSession se...
    method getLocalMavenRepoFile (line 107) | private File getLocalMavenRepoFile(MavenSession session, File source) {
    method getArtifactFromJar (line 127) | private Artifact getArtifactFromJar(File jar) {
    method extractFileType (line 164) | private String extractFileType(File source) {
    method getArtifactFromPomProperties (line 169) | private Artifact getArtifactFromPomProperties(String type, Properties ...
    method init (line 181) | public void init(Logger log, String assemblyName) {

FILE: src/main/java/io/fabric8/maven/docker/config/ArchiveCompression.java
  type ArchiveCompression (line 32) | public enum ArchiveCompression {
    method wrapOutputStream (line 37) | @Override
    method wrapOutputStream (line 44) | @Override
    method ArchiveCompression (line 55) | ArchiveCompression(TarArchiver.TarCompressionMethod tarCompressionMeth...
    method getTarCompressionMethod (line 60) | public TarArchiver.TarCompressionMethod getTarCompressionMethod() {
    method getFileSuffix (line 64) | public String getFileSuffix() {
    method wrapOutputStream (line 68) | public OutputStream wrapOutputStream(OutputStream outputStream) throws...
    method fromFileName (line 72) | public static ArchiveCompression fromFileName(String filename) {
    class GZIPOutputStream (line 87) | private static class GZIPOutputStream extends java.util.zip.GZIPOutput...
      method GZIPOutputStream (line 88) | private GZIPOutputStream(OutputStream out) throws IOException {

FILE: src/main/java/io/fabric8/maven/docker/config/Arguments.java
  class Arguments (line 9) | public class Arguments implements Serializable {
    method Arguments (line 42) | public Arguments() { }
    method Arguments (line 44) | public Arguments(String shell) {
    method Arguments (line 48) | public Arguments(List<String> exec) { this.exec = exec; }
    method set (line 61) | public void set(String shell) {
    method setShell (line 65) | public void setShell(String shell) {
    method getShell (line 69) | public String getShell() {
    method setExec (line 73) | public void setExec(List<String> exec) {
    method setArg (line 80) | @SuppressWarnings("unused")
    method getExec (line 85) | public List<String> getExec() {
    method validate (line 89) | public void validate() throws IllegalArgumentException {
    method asStrings (line 106) | public List<String> asStrings() {
    class Builder (line 116) | public static class Builder {
      method get (line 120) | public static Builder get(){
      method withShell (line 124) | public Builder withShell(String shell){
      method withParam (line 129) | public Builder withParam(String param){
      method build (line 137) | public Arguments build(){

FILE: src/main/java/io/fabric8/maven/docker/config/AssemblyConfiguration.java
  class AssemblyConfiguration (line 9) | public class AssemblyConfiguration implements Serializable {
    method getIgnorePermissions (line 65) | @Deprecated
    method getExportTargetDir (line 79) | public Boolean getExportTargetDir() {
    method exportTargetDir (line 83) | public Boolean exportTargetDir() {
    method getTargetDir (line 93) | public String getTargetDir() {
    method getInline (line 108) | public Assembly getInline() {
    method getDescriptor (line 112) | public String getDescriptor() {
    method getDescriptorRef (line 116) | public String getDescriptorRef() {
    method getDockerFileDir (line 120) | public String getDockerFileDir() {
    method getUser (line 124) | public String getUser() {
    method getMode (line 128) | public AssemblyMode getMode() {
    method getModeRaw (line 132) | public String getModeRaw() {
    method getTarLongFileMode (line 136) | public String getTarLongFileMode() {
    method isIgnorePermissions (line 140) | public Boolean isIgnorePermissions() {
    method getPermissions (line 148) | public PermissionMode getPermissions() {
    method getPermissionsRaw (line 152) | public String getPermissionsRaw() {
    method getName (line 156) | public String getName() {
    class Builder (line 160) | public static class Builder {
      method build (line 165) | public AssemblyConfiguration build() {
      method targetDir (line 169) | public Builder targetDir(String targetDir) {
      method assemblyDef (line 174) | public Builder assemblyDef(Assembly descriptor) {
      method descriptor (line 179) | public Builder descriptor(String descriptorFile) {
      method descriptorRef (line 184) | public Builder descriptorRef(String descriptorRef) {
      method dockerFileDir (line 189) | public Builder dockerFileDir(String dockerFileDir) {
      method exportBasedir (line 194) | public Builder exportBasedir(Boolean export) {
      method ignorePermissions (line 199) | @Deprecated
      method permissions (line 205) | public Builder permissions(String permissions) {
      method user (line 212) | public Builder user(String user) {
      method mode (line 217) | public Builder mode(String mode) {
      method tarLongFileMode (line 225) | public Builder tarLongFileMode(String tarLongFileMode) {
      method set (line 230) | private <T> T set(T prop) {
    type PermissionMode (line 238) | public enum PermissionMode {

FILE: src/main/java/io/fabric8/maven/docker/config/AssemblyMode.java
  type AssemblyMode (line 24) | public enum AssemblyMode {
    method AssemblyMode (line 49) | AssemblyMode(String extension, boolean isArchive) {
    method getExtension (line 59) | public String getExtension() {
    method isArchive (line 63) | public boolean isArchive() {

FILE: src/main/java/io/fabric8/maven/docker/config/BuildImageConfiguration.java
  class BuildImageConfiguration (line 16) | public class BuildImageConfiguration implements Serializable {
    method BuildImageConfiguration (line 182) | public BuildImageConfiguration() {}
    method isDockerFileMode (line 184) | public boolean isDockerFileMode() {
    method getLoadNamePattern (line 188) | public String getLoadNamePattern() {
    method getContextDir (line 192) | public File getContextDir() {
    method getContextDirRaw (line 205) | public String getContextDirRaw() {
    method getDockerFile (line 209) | public File getDockerFile() {
    method getDockerArchive (line 213) | public File getDockerArchive() {
    method getDockerFileRaw (line 217) | public String getDockerFileRaw() {
    method getDockerArchiveRaw (line 221) | public String getDockerArchiveRaw() {
    method getDockerFileDirRaw (line 225) | public String getDockerFileDirRaw() {
    method getFilter (line 229) | public String getFilter() {
    method getFilterRaw (line 233) | public String getFilterRaw() {
    method getFrom (line 237) | public String getFrom() {
    method getFromExt (line 244) | public Map<String, String> getFromExt() {
    method getCacheFrom (line 248) | public List<String> getCacheFrom() {
    method getNetwork (line 252) | public String getNetwork() {
    method getRegistry (line 256) | public String getRegistry() {
    method getMaintainer (line 260) | public String getMaintainer() {
    method getWorkdir (line 264) | public String getWorkdir() {
    method getAssemblyConfiguration (line 268) | public AssemblyConfiguration getAssemblyConfiguration() {
    method getPorts (line 272) | @Nonnull
    method getImagePullPolicy (line 277) | public String getImagePullPolicy() {
    method getVolumes (line 281) | @Nonnull
    method getTags (line 286) | @Nonnull
    method getEnv (line 291) | public Map<String, String> getEnv() {
    method getLabels (line 295) | public Map<String, String> getLabels() {
    method getCmd (line 299) | public Arguments getCmd() {
    method getCommand (line 303) | @Deprecated
    method getCleanup (line 308) | public String getCleanup() {
    method cleanupMode (line 312) | public CleanupMode cleanupMode() {
    method noCache (line 316) | public boolean noCache() {
    method squash (line 326) | public boolean squash() {
    method optimise (line 333) | public boolean optimise() {
    method skip (line 337) | public boolean skip() {
    method skipPush (line 341) | public boolean skipPush() {
    method getNoCache (line 345) | public Boolean getNoCache() {
    method getSquash (line 349) | public Boolean getSquash() {
    method getOptimise (line 353) | public Boolean getOptimise() {
    method getSkip (line 357) | public Boolean getSkip() {
    method getSkipPush (line 361) | public Boolean getSkipPush() {
    method getCompression (line 365) | public ArchiveCompression getCompression() {
    method getBuildOptions (line 369) | public Map<String, String> getBuildOptions() {
    method getEntryPoint (line 373) | public Arguments getEntryPoint() {
    method getShell (line 377) | public Arguments getShell() {
    method getRunCmds (line 381) | @Nonnull
    method getUser (line 386) | public String getUser() {
    method getHealthCheck (line 390) | public HealthCheckConfiguration getHealthCheck() {
    method getArgs (line 394) | public Map<String, String> getArgs() {
    method getAbsoluteContextDirPath (line 398) | public File getAbsoluteContextDirPath(MojoParameters mojoParams) {
    method getAbsoluteDockerFilePath (line 402) | public File getAbsoluteDockerFilePath(MojoParameters mojoParams) {
    method getAbsoluteDockerTarPath (line 406) | public File getAbsoluteDockerTarPath(MojoParameters mojoParams) {
    class Builder (line 410) | public static class Builder {
      method Builder (line 413) | public Builder() {
      method Builder (line 417) | public Builder(BuildImageConfiguration that) {
      method contextDir (line 425) | public Builder contextDir(String dir) {
      method dockerFileDir (line 430) | public Builder dockerFileDir(String dir) {
      method dockerFile (line 435) | public Builder dockerFile(String file) {
      method dockerArchive (line 440) | public Builder dockerArchive(String archive) {
      method loadNamePattern (line 445) | public Builder loadNamePattern(String archiveEntryRepoTagPattern) {
      method filter (line 450) | public Builder filter(String filter) {
      method from (line 455) | public Builder from(String from) {
      method fromExt (line 460) | public Builder fromExt(Map<String, String> fromExt) {
      method cacheFrom (line 465) | public Builder cacheFrom(String cacheFrom, String ...more) {
      method cacheFrom (line 476) | public Builder cacheFrom(Collection<String> cacheFrom) {
      method registry (line 481) | public Builder registry(String registry) {
      method maintainer (line 486) | public Builder maintainer(String maintainer) {
      method network (line 491) | public Builder network(String network) {
      method workdir (line 496) | public Builder workdir(String workdir) {
      method assembly (line 501) | public Builder assembly(AssemblyConfiguration assembly) {
      method ports (line 506) | public Builder ports(List<String> ports) {
      method imagePullPolicy (line 511) | public Builder imagePullPolicy(String imagePullPolicy) {
      method shell (line 516) | public Builder shell(Arguments shell) {
      method runCmds (line 524) | public Builder runCmds(List<String> theCmds) {
      method volumes (line 533) | public Builder volumes(List<String> volumes) {
      method tags (line 538) | public Builder tags(List<String> tags) {
      method env (line 543) | public Builder env(Map<String, String> env) {
      method args (line 548) | public Builder args(Map<String, String> args) {
      method labels (line 553) | public Builder labels(Map<String, String> labels) {
      method cmd (line 558) | public Builder cmd(Arguments cmd) {
      method cleanup (line 565) | public Builder cleanup(String cleanup) {
      method compression (line 570) | public Builder compression(String compression) {
      method noCache (line 579) | public Builder noCache(Boolean noCache) {
      method squash (line 584) | public Builder squash(Boolean squash) {
      method optimise (line 589) | public Builder optimise(Boolean optimise) {
      method entryPoint (line 594) | public Builder entryPoint(Arguments entryPoint) {
      method user (line 601) | public Builder user(String user) {
      method healthCheck (line 606) | public Builder healthCheck(HealthCheckConfiguration healthCheck) {
      method skip (line 611) | public Builder skip(Boolean skip) {
      method skipPush (line 616) | public Builder skipPush(Boolean skipPush) {
      method buildOptions (line 621) | public Builder buildOptions(Map<String,String> buildOptions) {
      method build (line 626) | public BuildImageConfiguration build() {
    method initAndValidate (line 631) | public String initAndValidate(Logger log) throws IllegalArgumentExcept...
    method initDockerFileFile (line 673) | private void initDockerFileFile(Logger log) {
    method findDockerFileFile (line 686) | private File findDockerFileFile(Logger log) {

FILE: src/main/java/io/fabric8/maven/docker/config/BuildImageSelectMode.java
  type BuildImageSelectMode (line 25) | public enum BuildImageSelectMode {

FILE: src/main/java/io/fabric8/maven/docker/config/CleanupMode.java
  type CleanupMode (line 25) | public enum CleanupMode {
    method CleanupMode (line 33) | CleanupMode(boolean remove, String parameter) {
    method parse (line 38) | public static CleanupMode parse(String param) {
    method isRemove (line 50) | public boolean isRemove() {
    method toParameter (line 54) | public String toParameter() {

FILE: src/main/java/io/fabric8/maven/docker/config/ConfigHelper.java
  class ConfigHelper (line 36) | public class ConfigHelper {
    method ConfigHelper (line 41) | private ConfigHelper() {}
    method resolveImages (line 52) | public static List<ImageConfiguration> resolveImages(Logger logger,
    method validateExternalPropertyActivation (line 71) | public static void validateExternalPropertyActivation(MavenProject pro...
    method getExternalConfigActivationProperty (line 99) | public static String getExternalConfigActivationProperty(MavenProject ...
    method initAndValidate (line 121) | public static String initAndValidate(List<ImageConfiguration> images, ...
    method matchesConfiguredImages (line 131) | public static boolean matchesConfiguredImages(String imageList, ImageC...
    method filterImages (line 143) | private static List<ImageConfiguration> filterImages(String nameFilter...
    method resolveConfiguration (line 154) | private static List<ImageConfiguration> resolveConfiguration(Resolver ...
    method verifyImageNames (line 168) | private static void verifyImageNames(List<ImageConfiguration> ret) {
    type Customizer (line 184) | public interface Customizer {
      method customizeConfig (line 185) | List<ImageConfiguration> customizeConfig(List<ImageConfiguration> co...
    type Resolver (line 192) | public interface Resolver {
      method resolve (line 193) | List<ImageConfiguration> resolve(ImageConfiguration image);
    type NameFormatter (line 199) | public interface NameFormatter {
      method format (line 200) | String format(String name);
      method format (line 203) | public String format(String name) {

FILE: src/main/java/io/fabric8/maven/docker/config/DockerMachineConfiguration.java
  class DockerMachineConfiguration (line 8) | public class DockerMachineConfiguration implements Serializable {
    method DockerMachineConfiguration (line 43) | public DockerMachineConfiguration() {}
    method DockerMachineConfiguration (line 45) | public DockerMachineConfiguration(String name, String autoCreate, Stri...
    method getName (line 51) | public String getName() {
    method getAutoCreate (line 55) | public Boolean getAutoCreate() {
    method getRegenerateCertsAfterStart (line 59) | public Boolean getRegenerateCertsAfterStart() {
    method getCreateOptions (line 63) | public Map<String, String> getCreateOptions() {
    method toString (line 67) | @Override

FILE: src/main/java/io/fabric8/maven/docker/config/HealthCheckConfiguration.java
  class HealthCheckConfiguration (line 8) | public class HealthCheckConfiguration implements Serializable {
    method HealthCheckConfiguration (line 22) | public HealthCheckConfiguration() {}
    method getInterval (line 24) | public String getInterval() {
    method getTimeout (line 28) | public String getTimeout() {
    method getStartPeriod (line 32) | public String getStartPeriod() {
    method prepareTimeValue (line 36) | private String prepareTimeValue(String timeout) {
    method getCmd (line 44) | public Arguments getCmd() {
    method getMode (line 48) | public HealthCheckMode getMode() {
    method getRetries (line 52) | public Integer getRetries() {
    method validate (line 56) | public void validate() throws IllegalArgumentException {
    class Builder (line 76) | public static class Builder {
      method Builder (line 80) | public Builder() {
      method interval (line 84) | public Builder interval(String interval) {
      method timeout (line 89) | public Builder timeout(String timeout) {
      method startPeriod (line 94) | public Builder startPeriod(String startPeriod) {
      method cmd (line 99) | public Builder cmd(Arguments command) {
      method retries (line 106) | public Builder retries(Integer retries) {
      method mode (line 111) | public Builder mode(String mode) {
      method mode (line 115) | public Builder mode(HealthCheckMode mode) {
      method build (line 120) | public HealthCheckConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/HealthCheckMode.java
  type HealthCheckMode (line 4) | public enum HealthCheckMode {

FILE: src/main/java/io/fabric8/maven/docker/config/ImageConfiguration.java
  class ImageConfiguration (line 19) | public class ImageConfiguration implements StartOrderResolver.Resolvable...
    method ImageConfiguration (line 49) | public ImageConfiguration() {}
    method getName (line 51) | @Override
    method setName (line 62) | public void setName(String name) {
    method setRegistry (line 70) | public void setRegistry(String registry) {
    method setExternalConfiguration (line 79) | public void setExternalConfiguration(Map<String, String> externalConfi...
    method getAlias (line 83) | @Override
    method setAlias (line 88) | public void setAlias(String alias) {
    method getStopNamePattern (line 92) | public String getStopNamePattern() {
    method getRemoveNamePattern (line 96) | public String getRemoveNamePattern() {
    method getRunConfiguration (line 100) | public RunImageConfiguration getRunConfiguration() {
    method getBuildConfiguration (line 104) | public BuildImageConfiguration getBuildConfiguration() {
    method getWatchConfiguration (line 108) | public WatchImageConfiguration getWatchConfiguration() {
    method getExternalConfig (line 112) | public Map<String, String> getExternalConfig() {
    method getDependencies (line 116) | @Override
    method addVolumes (line 129) | private void addVolumes(RunImageConfiguration runConfig, List<String> ...
    method addLinks (line 139) | private void addLinks(RunImageConfiguration runConfig, List<String> re...
    method addContainerNetwork (line 148) | private void addContainerNetwork(RunImageConfiguration runConfig, List...
    method addDependsOn (line 156) | private void addDependsOn(RunImageConfiguration runConfig, List<String...
    method isDataImage (line 163) | public boolean isDataImage() {
    method getDescription (line 170) | public String getDescription() {
    method getRegistry (line 174) | public String getRegistry() {
    method toString (line 178) | @Override
    method initAndValidate (line 183) | public String initAndValidate(ConfigHelper.NameFormatter nameFormatter...
    class Builder (line 198) | public static class Builder {
      method Builder (line 201) | public Builder()  {
      method Builder (line 206) | public Builder(ImageConfiguration that) {
      method name (line 214) | public Builder name(String name) {
      method alias (line 219) | public Builder alias(String alias) {
      method removeNamePattern (line 224) | public Builder removeNamePattern(String removeNamePattern) {
      method stopNamePattern (line 229) | public Builder stopNamePattern(String stopNamePattern) {
      method runConfig (line 234) | public Builder runConfig(RunImageConfiguration runConfig) {
      method buildConfig (line 239) | public Builder buildConfig(BuildImageConfiguration buildConfig) {
      method externalConfig (line 244) | public Builder externalConfig(Map<String, String> externalConfig) {
      method registry (line 249) | public Builder registry(String registry) {
      method build (line 254) | public ImageConfiguration build() {
      method watchConfig (line 258) | public Builder watchConfig(WatchImageConfiguration watchConfig) {

FILE: src/main/java/io/fabric8/maven/docker/config/ImagePullPolicy.java
  type ImagePullPolicy (line 9) | public enum ImagePullPolicy {
    method fromString (line 26) | public static ImagePullPolicy fromString(String imagePullPolicy) {

FILE: src/main/java/io/fabric8/maven/docker/config/LogConfiguration.java
  class LogConfiguration (line 12) | public class LogConfiguration implements Serializable {
    method LogConfiguration (line 34) | public LogConfiguration() {}
    method LogConfiguration (line 36) | private LogConfiguration(Boolean enabled, String prefix, String color,...
    method getPrefix (line 45) | public String getPrefix() {
    method getDate (line 49) | public String getDate() {
    method getColor (line 53) | public String getColor() {
    method isEnabled (line 57) | public Boolean isEnabled() {
    method isActivated (line 66) | public boolean isActivated() {
    method isBlank (line 75) | private boolean isBlank() {
    method getFileLocation (line 79) | public String getFileLocation() {
    method getDriver (line 83) | public LogDriver getDriver() {
    class LogDriver (line 89) | public static class LogDriver implements Serializable {
      method LogDriver (line 97) | public LogDriver() {}
      method LogDriver (line 99) | private LogDriver(String name, Map<String, String> opts) {
      method getName (line 104) | public String getName() {
      method getOpts (line 108) | public Map<String, String> getOpts() {
    class Builder (line 115) | public static class Builder {
      method enabled (line 120) | public Builder enabled(Boolean enabled) {
      method prefix (line 125) | public Builder prefix(String prefix) {
      method date (line 130) | public Builder date(String date) {
      method color (line 135) | public Builder color(String color) {
      method file (line 140) | public Builder file(String file) {
      method logDriverName (line 145) | public Builder logDriverName(String logDriver) {
      method logDriverOpts (line 150) | public Builder logDriverOpts(Map<String, String> logOpts) {
      method build (line 155) | public LogConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/NetworkConfig.java
  class NetworkConfig (line 31) | public class NetworkConfig implements Serializable {
    method addAlias (line 43) | public void addAlias(String alias) {
    method NetworkConfig (line 51) | public NetworkConfig(String net) {
    method NetworkConfig (line 56) | public NetworkConfig(Mode mode, String name) {
    method NetworkConfig (line 61) | public NetworkConfig() {
    method initLegacyNetSpec (line 66) | private void initLegacyNetSpec(String net) {
    method extractMode (line 82) | private Mode extractMode(String mode) {
    method getAliases (line 96) | public List<String> getAliases() {
    method isCustomNetwork (line 100) | public boolean isCustomNetwork() {
    method isStandardNetwork (line 104) | public boolean isStandardNetwork() {
    method getStandardMode (line 108) | public String getStandardMode(String containerId) {
    method getContainerAlias (line 119) | public String getContainerAlias() {
    method getCustomNetwork (line 123) | public String getCustomNetwork() {
    method hasAliases (line 127) | public boolean hasAliases() {
    method getMode (line 131) | public Mode getMode() {
    method getName (line 135) | public String getName() {
    type Mode (line 142) | public enum Mode {
    class Builder (line 150) | public static class Builder {
      method build (line 155) | public NetworkConfig build() {
      method mode (line 159) | public Builder mode(String mode) {
      method name (line 164) | public Builder name(String name) {
      method aliases (line 170) | public Builder aliases(List<String> aliases) {
      method set (line 175) | private <T> T set(T prop) {

FILE: src/main/java/io/fabric8/maven/docker/config/RegistryAuthConfiguration.java
  class RegistryAuthConfiguration (line 11) | public class RegistryAuthConfiguration implements Serializable {
    method toMap (line 35) | public Map toMap() {

FILE: src/main/java/io/fabric8/maven/docker/config/RestartPolicy.java
  class RestartPolicy (line 26) | public class RestartPolicy implements Serializable {
    method RestartPolicy (line 36) | public RestartPolicy() {}
    method getName (line 38) | public String getName() {
    method getRetry (line 42) | public int getRetry() {
    class Builder (line 48) | public static class Builder {
      method name (line 52) | public Builder name(String name) {
      method retry (line 57) | public Builder retry(int retry) {
      method build (line 62) | public RestartPolicy build() {

FILE: src/main/java/io/fabric8/maven/docker/config/RunImageConfiguration.java
  class RunImageConfiguration (line 17) | public class RunImageConfiguration implements Serializable {
    method isDefault (line 21) | public boolean isDefault() {
    method RunImageConfiguration (line 195) | public RunImageConfiguration() { }
    method initAndValidate (line 197) | public String initAndValidate() {
    method getEnv (line 214) | public Map<String, String> getEnv() {
    method getLabels (line 218) | public Map<String, String> getLabels() {
    method getEnvPropertyFile (line 222) | public String getEnvPropertyFile() {
    method getEntrypoint (line 226) | public Arguments getEntrypoint() {
    method getHostname (line 230) | public String getHostname() {
    method getDomainname (line 234) | public String getDomainname() {
    method getDependsOn (line 238) | @Nonnull
    method getUser (line 243) | public String getUser() {
    method getShmSize (line 247) | public Long getShmSize() {
    method getMemory (line 251) | public Long getMemory() {
    method getMemorySwap (line 255) | public Long getMemorySwap() {
    method getCpuShares (line 259) | public Long getCpuShares() {
    method getCpus (line 263) | public Long getCpus() {
    method getCpuSet (line 267) | public String getCpuSet() {
    method getPorts (line 271) | @Nonnull
    method getCmd (line 276) | public Arguments getCmd() {
    method getPortPropertyFile (line 280) | public String getPortPropertyFile() {
    method getWorkingDir (line 284) | public String getWorkingDir() {
    method getWaitConfiguration (line 288) | public WaitConfiguration getWaitConfiguration() {
    method getLogConfiguration (line 292) | public LogConfiguration getLogConfiguration() {
    method getCapAdd (line 296) | public List<String> getCapAdd() {
    method getCapDrop (line 300) | public List<String> getCapDrop() {
    method getSecurityOpts (line 304) | public List<String> getSecurityOpts() {
    method getDns (line 308) | public List<String> getDns() {
    method getNetRaw (line 312) | @Deprecated
    method getNetworkingConfig (line 317) | public NetworkConfig getNetworkingConfig() {
    method getDnsSearch (line 327) | public List<String> getDnsSearch() {
    method getExtraHosts (line 331) | public List<String> getExtraHosts() {
    method getVolumeConfiguration (line 335) | public RunVolumeConfiguration getVolumeConfiguration() {
    method getLinks (line 339) | @Nonnull
    method getUlimits (line 344) | public List<UlimitConfig> getUlimits() {
    method getTmpfs (line 348) | public List<String> getTmpfs() {
    type NamingStrategy (line 356) | @Deprecated // for backward compatibility, us containerNamePattern ins...
    method getExposedPropertyKey (line 368) | public String getExposedPropertyKey() {
    method getPrivileged (line 372) | public Boolean getPrivileged() {
    method getRestartPolicy (line 376) | public RestartPolicy getRestartPolicy() {
    method getRestartPolicyRaw (line 380) | public RestartPolicy getRestartPolicyRaw() {
    method skip (line 384) | public boolean skip() {
    method getSkip (line 388) | public Boolean getSkip() {
    method getImagePullPolicy (line 392) | public String getImagePullPolicy() {
    method getContainerNamePattern (line 396) | public String getContainerNamePattern() {
    method getReadOnly (line 400) | public Boolean getReadOnly() {
    method getAutoRemove (line 404) | public Boolean getAutoRemove() {
    method getStopMode (line 408) | public StopMode getStopMode() {
    method getNamingStrategy (line 418) | @Deprecated
    class Builder (line 425) | public static class Builder {
      method Builder (line 427) | public Builder(RunImageConfiguration config) {
      method Builder (line 435) | public Builder() {
      method env (line 441) | public Builder env(Map<String, String> env) {
      method labels (line 446) | public Builder labels(Map<String, String> labels) {
      method envPropertyFile (line 452) | public Builder envPropertyFile(String envPropertyFile) {
      method cmd (line 457) | public Builder cmd(String cmd) {
      method cmd (line 464) | public Builder cmd(Arguments args) {
      method domainname (line 469) | public Builder domainname(String domainname) {
      method entrypoint (line 474) | public Builder entrypoint(Arguments args) {
      method hostname (line 479) | public Builder hostname(String hostname) {
      method portPropertyFile (line 484) | public Builder portPropertyFile(String portPropertyFile) {
      method workingDir (line 489) | public Builder workingDir(String workingDir) {
      method user (line 494) | public Builder user(String user) {
      method shmSize (line 499) | public Builder shmSize(Long shmSize) {
      method memory (line 504) | public Builder memory(Long memory) {
      method memorySwap (line 509) | public Builder memorySwap(Long memorySwap) {
      method capAdd (line 514) | public Builder capAdd(List<String> capAdd) {
      method capDrop (line 519) | public Builder capDrop(List<String> capDrop) {
      method securityOpts (line 524) | public Builder securityOpts(List<String> securityOpts) {
      method net (line 529) | public Builder net(String net) {
      method network (line 534) | public Builder network(NetworkConfig networkConfig) {
      method dependsOn (line 539) | public Builder dependsOn(List<String> dependsOn) {
      method dns (line 544) | public Builder dns(List<String> dns) {
      method dnsSearch (line 549) | public Builder dnsSearch(List<String> dnsSearch) {
      method extraHosts (line 554) | public Builder extraHosts(List<String> extraHosts) {
      method ulimits (line 559) | public Builder ulimits(List<UlimitConfig> ulimits) {
      method ports (line 564) | public Builder ports(List<String> ports) {
      method volumes (line 569) | public Builder volumes(RunVolumeConfiguration volumes) {
      method links (line 574) | public Builder links(List<String> links) {
      method tmpfs (line 579) | public Builder tmpfs(List<String> tmpfs) {
      method wait (line 584) | public Builder wait(WaitConfiguration wait) {
      method log (line 589) | public Builder log(LogConfiguration log) {
      method cpuShares (line 594) | public Builder cpuShares(Long cpuShares){
      method cpus (line 599) | public Builder cpus(Long cpus){
      method cpuSet (line 604) | public Builder cpuSet(String cpuSet){
      method containerNamePattern (line 609) | public Builder containerNamePattern(String pattern) {
      method namingStrategy (line 617) | @Deprecated
      method namingStrategy (line 628) | @Deprecated
      method exposedPropertyKey (line 634) | public Builder exposedPropertyKey(String key) {
      method privileged (line 639) | public Builder privileged(Boolean privileged) {
      method restartPolicy (line 644) | public Builder restartPolicy(RestartPolicy restartPolicy) {
      method skip (line 649) | public Builder skip(Boolean skip) {
      method stopMode (line 654) | public Builder stopMode(StopMode stopMode) {
      method imagePullPolicy (line 659) | public Builder imagePullPolicy(String imagePullPolicy) {
      method readOnly (line 666) | public Builder readOnly(Boolean readOnly) {
      method autoRemove (line 671) | public Builder autoRemove(Boolean autoRemove) {
      method build (line 676) | public RunImageConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/RunVolumeConfiguration.java
  class RunVolumeConfiguration (line 29) | public class RunVolumeConfiguration implements Serializable {
    method getFrom (line 49) | public List<String> getFrom() {
    method getBind (line 57) | public List<String> getBind() {
    class Builder (line 63) | public static class Builder {
      method Builder (line 67) | public Builder() {
      method from (line 71) | public Builder from(List<String> args) {
      method bind (line 81) | public Builder bind(List<String> args) {
      method build (line 91) | public RunVolumeConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/StopMode.java
  type StopMode (line 6) | public enum StopMode {

FILE: src/main/java/io/fabric8/maven/docker/config/UlimitConfig.java
  class UlimitConfig (line 20) | public class UlimitConfig implements Serializable {
    method UlimitConfig (line 31) | public UlimitConfig(String name, Integer hard, Integer soft) {
    method getName (line 37) | public String getName() {
    method getHard (line 41) | public Integer getHard() {
    method getSoft (line 45) | public Integer getSoft() {
    method UlimitConfig (line 51) | public UlimitConfig() {}
    method UlimitConfig (line 53) | public UlimitConfig(String ulimit) {
    method asInteger (line 64) | private Integer asInteger(String number) {
    method serialize (line 71) | public String serialize() {

FILE: src/main/java/io/fabric8/maven/docker/config/VolumeConfiguration.java
  class VolumeConfiguration (line 18) | public class VolumeConfiguration implements Serializable
    method getName (line 36) | public String getName() {
    method getDriver (line 40) | public String getDriver() {
    method getOpts (line 44) | public Map<String, String> getOpts() {
    method getLabels (line 48) | public Map<String, String> getLabels() {
    class Builder (line 54) | public static class Builder {
      method Builder (line 57) | public Builder()  {
      method Builder (line 61) | public Builder(VolumeConfiguration that) {
      method name (line 65) | public Builder name(String name) {
      method driver (line 70) | public Builder driver(String driver) {
      method opts (line 75) | public Builder opts(Map<String, String> opts) {
      method labels (line 80) | public Builder labels(Map<String, String> labels) {
      method build (line 85) | public VolumeConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/WaitConfiguration.java
  class WaitConfiguration (line 12) | public class WaitConfiguration implements Serializable {
    method WaitConfiguration (line 55) | public WaitConfiguration() {}
    method WaitConfiguration (line 57) | private WaitConfiguration(Integer time, ExecConfiguration exec, HttpCo...
    method getTime (line 69) | public Integer getTime() { return time; }
    method getUrl (line 71) | public String getUrl() {
    method getExec (line 75) | public ExecConfiguration getExec() {
    method getHttp (line 79) | public HttpConfiguration getHttp() {
    method getTcp (line 83) | public TcpConfiguration getTcp() {
    method getLog (line 87) | public String getLog() {
    method getExit (line 91) | public Integer getExit() {
    method getShutdown (line 95) | public Integer getShutdown() {
    method getKill (line 99) | public Integer getKill() {
    method getHealthy (line 103) | public Boolean getHealthy() { return healthy; }
    class Builder (line 107) | public static class Builder {
      method time (line 120) | public Builder time(int time) {
      method url (line 125) | public Builder url(String url) {
      method method (line 130) | public Builder method(String method) {
      method status (line 135) | public Builder status(String status) {
      method healthy (line 140) | public Builder healthy(Boolean healthy) {
      method log (line 145) | public Builder log(String log) {
      method shutdown (line 150) | public Builder shutdown(Integer shutdown) {
      method kill (line 155) | public Builder kill(Integer kill) {
      method exit (line 160) | public Builder exit(Integer exit) {
      method tcpPorts (line 165) | public Builder tcpPorts(List<Integer> tcpPorts) {
      method tcpHost (line 170) | public Builder tcpHost(String tcpHost) {
      method tcpMode (line 175) | public Builder tcpMode(String tcpMode) {
      method build (line 183) | public WaitConfiguration build() {
      method preStop (line 195) | public Builder preStop(String command) {
      method postStart (line 200) | public Builder postStart(String command) {
      method breakOnError (line 205) | public Builder breakOnError(Boolean stop) {
    class ExecConfiguration (line 211) | public static class ExecConfiguration implements Serializable {
      method ExecConfiguration (line 221) | public ExecConfiguration() {}
      method ExecConfiguration (line 223) | public ExecConfiguration(String postStart, String preStop, boolean b...
      method getPostStart (line 229) | public String getPostStart() {
      method getPreStop (line 233) | public String getPreStop() {
      method isBreakOnError (line 237) | public boolean isBreakOnError() {
    class HttpConfiguration (line 242) | public static class HttpConfiguration implements Serializable {
      method HttpConfiguration (line 256) | public HttpConfiguration() {}
      method HttpConfiguration (line 258) | private HttpConfiguration(String url, String method, String status) {
      method getUrl (line 264) | public String getUrl() {
      method getMethod (line 268) | public String getMethod() {
      method getStatus (line 272) | public String getStatus() {
      method isAllowAllHosts (line 276) | public boolean isAllowAllHosts() {
    type TcpConfigMode (line 281) | public enum TcpConfigMode {
    class TcpConfiguration (line 288) | public static class TcpConfiguration implements Serializable {
      method TcpConfiguration (line 298) | public TcpConfiguration() {}
      method TcpConfiguration (line 300) | private TcpConfiguration(TcpConfigMode mode, String host, List<Integ...
      method getHost (line 306) | public String getHost() {
      method getPorts (line 310) | public List<Integer> getPorts() {
      method getMode (line 314) | public TcpConfigMode getMode() {

FILE: src/main/java/io/fabric8/maven/docker/config/WatchImageConfiguration.java
  class WatchImageConfiguration (line 11) | public class WatchImageConfiguration implements Serializable {
    method WatchImageConfiguration (line 25) | public WatchImageConfiguration() {}
    method getInterval (line 27) | public int getInterval() {
    method getIntervalRaw (line 31) | public Integer getIntervalRaw() {
    method getMode (line 35) | public WatchMode getMode() {
    method getPostGoal (line 39) | public String getPostGoal() {
    method getPostExec (line 43) | public String getPostExec() {
    class Builder (line 47) | public static class Builder {
      method Builder (line 51) | public Builder() {
      method Builder (line 55) | public Builder(WatchImageConfiguration that) {
      method interval (line 63) | public Builder interval(Integer interval) {
      method mode (line 68) | public Builder mode(String mode) {
      method postGoal (line 75) | public Builder postGoal(String goal) {
      method postExec (line 80) | public Builder postExec(String exec) {
      method build (line 85) | public WatchImageConfiguration build() {

FILE: src/main/java/io/fabric8/maven/docker/config/WatchMode.java
  type WatchMode (line 23) | public enum WatchMode {
    method WatchMode (line 55) | WatchMode(boolean doBuild, boolean doRun, boolean doCopy, String descr...
    method isRun (line 62) | public boolean isRun() {
    method isBuild (line 66) | public boolean isBuild() {
    method isCopy (line 70) | public boolean isCopy() {
    method getDescription (line 74) | public String getDescription() {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/ExternalConfigHandler.java
  type ExternalConfigHandler (line 31) | public interface ExternalConfigHandler {
    method getType (line 39) | String getType();
    method resolve (line 51) | List<ImageConfiguration> resolve(ImageConfiguration unresolvedConfig, ...

FILE: src/main/java/io/fabric8/maven/docker/config/handler/ExternalConfigHandlerException.java
  class ExternalConfigHandlerException (line 3) | public class ExternalConfigHandlerException extends RuntimeException
    method ExternalConfigHandlerException (line 7) | public ExternalConfigHandlerException(String message)
    method ExternalConfigHandlerException (line 12) | public ExternalConfigHandlerException(String message, Throwable cause)

FILE: src/main/java/io/fabric8/maven/docker/config/handler/ImageConfigResolver.java
  class ImageConfigResolver (line 39) | @Component(role = ImageConfigResolver.class, instantiationStrategy = "si...
    method initialize (line 57) | @Override
    method setLog (line 67) | public void setLog(Logger log) {
    method resolve (line 86) | public List<ImageConfiguration> resolve(ImageConfiguration unresolvedC...
    method injectExternalConfigActivation (line 104) | private void injectExternalConfigActivation(ImageConfiguration unresol...

FILE: src/main/java/io/fabric8/maven/docker/config/handler/compose/ComposeUtils.java
  class ComposeUtils (line 12) | class ComposeUtils {
    method resolveComposeFileAbsolutely (line 28) | static File resolveComposeFileAbsolutely(String baseDir, String compos...
    method resolveAbsolutely (line 60) | static File resolveAbsolutely(String pathToResolve, MavenProject proje...

FILE: src/main/java/io/fabric8/maven/docker/config/handler/compose/DockerComposeConfigHandler.java
  class DockerComposeConfigHandler (line 28) | public class DockerComposeConfigHandler implements ExternalConfigHandler {
    method getType (line 30) | @Override
    method resolve (line 39) | @Override
    method validateVersion (line 63) | private void validateVersion(Map<String, Object> compose, File file) {
    method isVersion2 (line 70) | private boolean isVersion2(String version) {
    method extractDockerFilePath (line 74) | private String extractDockerFilePath(DockerComposeServiceWrapper mappe...
    method buildImageConfiguration (line 88) | private ImageConfiguration buildImageConfiguration(DockerComposeServic...
    method getImageName (line 103) | private String getImageName(DockerComposeServiceWrapper mapper, ImageC...
    method getComposeConfigurations (line 114) | private Iterable<Object> getComposeConfigurations(File composePath, Ma...
    method getFilteredReader (line 124) | private Reader getFilteredReader(File path, MavenProject project, Mave...
    method createBuildImageConfiguration (line 138) | private BuildImageConfiguration createBuildImageConfiguration(DockerCo...
    method serviceMatchesAlias (line 159) | private boolean serviceMatchesAlias(DockerComposeServiceWrapper mapper...
    method createRunConfiguration (line 163) | private RunImageConfiguration createRunConfiguration(DockerComposeServ...

FILE: src/main/java/io/fabric8/maven/docker/config/handler/compose/DockerComposeConfiguration.java
  class DockerComposeConfiguration (line 5) | public class DockerComposeConfiguration {
    method DockerComposeConfiguration (line 10) | public DockerComposeConfiguration(Map<String, String> config) {
    method getBasedir (line 16) | String getBasedir() {
    method getComposeFile (line 20) | String getComposeFile() {
    method isIgnoreBuild (line 24) | public boolean isIgnoreBuild() {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/compose/DockerComposeServiceWrapper.java
  class DockerComposeServiceWrapper (line 21) | class DockerComposeServiceWrapper {
    method DockerComposeServiceWrapper (line 29) | DockerComposeServiceWrapper(String serviceName, File composeFile, Map<...
    method getAlias (line 43) | String getAlias() {
    method getImage (line 49) | String getImage() {
    method requiresBuild (line 56) | boolean requiresBuild() {
    method getBuildDir (line 60) | String getBuildDir() {
    method getDockerfile (line 78) | String getDockerfile() {
    method getBuildArgs (line 87) | Map<String, String> getBuildArgs() {
    method getCapAdd (line 99) | List<String> getCapAdd() {
    method getCapDrop (line 103) | List<String> getCapDrop() {
    method getCommand (line 107) | Arguments getCommand() {
    method getDependsOn (line 112) | List<String> getDependsOn() {
    method getDns (line 116) | List<String> getDns() {
    method getDnsSearch (line 120) | List<String> getDnsSearch() {
    method getTmpfs (line 124) | List<String> getTmpfs() {
    method getEntrypoint (line 128) | Arguments getEntrypoint() {
    method getEnvironment (line 133) | Map<String, String> getEnvironment() {
    method getExtraHosts (line 140) | List<String> getExtraHosts() {
    method getLabels (line 146) | Map<String, String> getLabels() {
    method getLinks (line 150) | public List<String> getLinks() {
    method getLogConfiguration (line 157) | LogConfiguration getLogConfiguration() {
    method getNetworkConfig (line 172) | NetworkConfig getNetworkConfig() {
    method getPortMapping (line 221) | List<String> getPortMapping() {
    method getUlimits (line 243) | List<UlimitConfig> getUlimits() {
    method getVolumeConfig (line 269) | RunVolumeConfiguration getVolumeConfig() {
    method getDomainname (line 292) | String getDomainname() {
    method getHostname (line 296) | String getHostname() {
    method getMemory (line 300) | Long getMemory() {
    method getMemorySwap (line 304) | Long getMemorySwap() {
    method getPrivileged (line 308) | Boolean getPrivileged() {
    method getRestartPolicy (line 312) | RestartPolicy getRestartPolicy() {
    method getShmSize (line 330) | Long getShmSize() {
    method getUser (line 334) | String getUser() {
    method getWorkingDir (line 338) | String getWorkingDir() {
    method getCGroupParent (line 345) | public String getCGroupParent() {
    method getCpuSet (line 349) | public String getCpuSet() {
    method getCpuShares (line 353) | public Long getCpuShares() {
    method getCpusCount (line 357) | public Long getCpusCount(){
    method getDevices (line 362) | public List<String> getDevices() {
    method asObject (line 369) | private Object asObject(String key) {
    method asString (line 373) | private String asString(String key) {
    method asLong (line 377) | private Long asLong(String key) {
    method asBoolean (line 385) | private Boolean asBoolean(String key) {
    method asList (line 393) | private <T> List<T> asList(String key) {
    method asMap (line 406) | private Map<String, String> asMap(String key) {
    method asDouble (line 418) | private Double asDouble(String key){
    method asArguments (line 426) | private Arguments asArguments(Object command, String label) {
    method convertToMap (line 437) | private Map<String, String> convertToMap(List<String> list) {
    method convertToNanoCpus (line 446) | private Long convertToNanoCpus(Double cpus){
    method throwIllegalArgumentException (line 453) | private void throwIllegalArgumentException(String msg) {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/property/ConfigKey.java
  type ConfigKey (line 24) | public enum ConfigKey {
    method ConfigKey (line 144) | ConfigKey() {
    method ConfigKey (line 148) | ConfigKey(String key) {
    method ConfigKey (line 152) | ConfigKey(ValueCombinePolicy valueCombinePolicy) {
    method ConfigKey (line 157) | ConfigKey(String key, ValueCombinePolicy valueCombinePolicy) {
    method toVarName (line 168) | private String toVarName(String s) {
    method asPropertyKey (line 177) | public String asPropertyKey(String prefix) {
    method asPropertyKey (line 181) | public String asPropertyKey() {
    method getValueCombinePolicy (line 185) | public ValueCombinePolicy getValueCombinePolicy() {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/property/PropertyConfigHandler.java
  class PropertyConfigHandler (line 53) | public class PropertyConfigHandler implements ExternalConfigHandler {
    method getType (line 58) | @Override
    method resolve (line 63) | @Override
    method isStringValueNull (line 96) | private boolean isStringValueNull(ValueProvider valueProvider, BuildIm...
    method buildConfigured (line 100) | private boolean buildConfigured(BuildImageConfiguration config, ValueP...
    method extractBuildConfiguration (line 130) | private BuildImageConfiguration extractBuildConfiguration(ImageConfigu...
    method extractRunConfiguration (line 176) | private RunImageConfiguration extractRunConfiguration(ImageConfigurati...
    method extractNetworkConfig (line 229) | private NetworkConfig extractNetworkConfig(NetworkConfig config, Value...
    method extractAssembly (line 237) | @SuppressWarnings("deprecation")
    method extractHealthCheck (line 253) | private HealthCheckConfiguration extractHealthCheck(HealthCheckConfigu...
    method extractPortValues (line 271) | private List<String> extractPortValues(List<String> config, ValueProvi...
    method extractArguments (line 284) | private Arguments extractArguments(ValueProvider valueProvider, Config...
    method extractRestartPolicy (line 288) | private RestartPolicy extractRestartPolicy(RestartPolicy config, Value...
    method extractLogConfig (line 295) | private LogConfiguration extractLogConfig(LogConfiguration config, Val...
    method extractWaitConfig (line 310) | private WaitConfiguration extractWaitConfig(WaitConfiguration config, ...
    method extractWatchConfig (line 339) | private WatchImageConfiguration extractWatchConfig(ImageConfiguration ...
    method extractUlimits (line 350) | private List<UlimitConfig> extractUlimits(List<UlimitConfig> config, V...
    method extractVolumeConfig (line 371) | private RunVolumeConfiguration extractVolumeConfig(RunVolumeConfigurat...
    method getPrefix (line 378) | private static String getPrefix(Map<String, String> externalConfig) {
    method getMode (line 386) | private static PropertyMode getMode(Map<String, String> externalConfig) {
    method canCoexistWithOtherPropertyConfiguredImages (line 390) | public static boolean canCoexistWithOtherPropertyConfiguredImages(Map<...

FILE: src/main/java/io/fabric8/maven/docker/config/handler/property/PropertyMode.java
  type PropertyMode (line 9) | public enum PropertyMode {
    method parse (line 24) | static PropertyMode parse(String name) {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/property/ValueCombinePolicy.java
  type ValueCombinePolicy (line 8) | public enum ValueCombinePolicy {
    method fromString (line 19) | public static ValueCombinePolicy fromString(String valueCombinePolicy) {

FILE: src/main/java/io/fabric8/maven/docker/config/handler/property/ValueProvider.java
  class ValueProvider (line 33) | public class ValueProvider {
    method ValueProvider (line 56) | public ValueProvider(String prefix, Properties properties, PropertyMod...
    method getString (line 71) | public String getString(ConfigKey key, String fromConfig) {
    method getInteger (line 75) | public Integer getInteger(ConfigKey key, Integer fromConfig) {
    method getInt (line 79) | public int getInt(ConfigKey key, Integer fromConfig) {
    method getLong (line 87) | public Long getLong(ConfigKey key, Long fromConfig) {
    method getBoolean (line 91) | public Boolean getBoolean(ConfigKey key, Boolean fromConfig) {
    method getList (line 95) | public List<String> getList(ConfigKey key, List<String> fromConfig) {
    method getIntList (line 99) | public List<Integer> getIntList(ConfigKey key, List<Integer> fromConfi...
    method getMap (line 103) | public Map<String, String> getMap(ConfigKey key, Map<String, String> f...
    method getDouble (line 107) | public Double getDouble(ConfigKey key, Double fromConfig){
    method getObject (line 111) | public <T> T getObject(ConfigKey key, T fromConfig, final com.google.c...
    class ValueExtractor (line 128) | private abstract class ValueExtractor<T> {
      method getFromPreferredSource (line 129) | T getFromPreferredSource(String prefix, ConfigKey key, T fromConfig) {
      method withPrefix (line 196) | protected abstract T withPrefix(String prefix, ConfigKey key, Proper...
      method merge (line 198) | protected T merge(ConfigKey key, List<T> values) {
    class StringValueExtractor (line 206) | private class StringValueExtractor extends ValueExtractor<String> {
      method withPrefix (line 207) | @Override
    class IntValueExtractor (line 213) | private class IntValueExtractor extends ValueExtractor<Integer> {
      method withPrefix (line 214) | @Override
    class LongValueExtractor (line 222) | private class LongValueExtractor extends ValueExtractor<Long> {
      method withPrefix (line 223) | @Override
    class BooleanValueExtractor (line 230) | private class BooleanValueExtractor extends ValueExtractor<Boolean> {
      method withPrefix (line 231) | @Override
    class DoubleValueExtractor (line 238) | private class DoubleValueExtractor extends ValueExtractor<Double> {
      method withPrefix (line 239) | @Override
    class ListValueExtractor (line 246) | private abstract class ListValueExtractor<T> extends ValueExtractor<Li...
      method withPrefix (line 247) | @Override
      method process (line 256) | protected abstract List<T> process(List<String> strings);
      method merge (line 258) | @Override
    class StringListValueExtractor (line 268) | private class StringListValueExtractor extends ListValueExtractor<Stri...
      method process (line 269) | @Override
    class IntListValueExtractor (line 275) | private class IntListValueExtractor extends ListValueExtractor<Integer> {
      method process (line 276) | @Override
    class MapValueExtractor (line 288) | private class MapValueExtractor extends ValueExtractor<Map<String, Str...
      method withPrefix (line 289) | @Override
      method merge (line 294) | @Override

FILE: src/main/java/io/fabric8/maven/docker/log/DefaultLogCallback.java
  class DefaultLogCallback (line 30) | public class DefaultLogCallback implements LogCallback {
    method DefaultLogCallback (line 37) | public DefaultLogCallback(LogOutputSpec outputSpec) {
    method open (line 41) | @Override
    method close (line 62) | @Override
    method ps (line 75) | private PrintStream ps() {
    method log (line 79) | @Override
    method error (line 84) | @Override
    method addLogEntry (line 89) | private void addLogEntry(PrintStream ps, LogEntry logEntry) {
    class LogEntry (line 102) | private static class LogEntry implements Comparable<LogEntry> {
      method LogEntry (line 107) | public LogEntry(int type, ZonedDateTime timestamp, String text) {
      method getType (line 113) | public int getType() {
      method getTimestamp (line 117) | public ZonedDateTime getTimestamp() {
      method getText (line 121) | public String getText() {
      method compareTo (line 125) | @Override

FILE: src/main/java/io/fabric8/maven/docker/log/LogDispatcher.java
  class LogDispatcher (line 28) | public class LogDispatcher {
    method LogDispatcher (line 34) | public LogDispatcher(DockerAccess dockerAccess) {
    method trackContainerLog (line 39) | public synchronized void trackContainerLog(String containerId, LogOutp...
    method fetchContainerLog (line 44) | public synchronized void fetchContainerLog(String containerId, LogOutp...
    method untrackAllContainerLogs (line 48) | public synchronized void untrackAllContainerLogs() {

FILE: src/main/java/io/fabric8/maven/docker/log/LogOutput.java
  type LogOutput (line 22) | public interface LogOutput {

FILE: src/main/java/io/fabric8/maven/docker/log/LogOutputSpec.java
  class LogOutputSpec (line 31) | public class LogOutputSpec {
    method LogOutputSpec (line 49) | private LogOutputSpec(String prefix, Ansi.Color color, boolean fgBrigh...
    method isUseColor (line 59) | public boolean isUseColor() {
    method isLogStdout (line 63) | public boolean isLogStdout() {
    method getPrompt (line 67) | public String getPrompt(boolean withColor, ZonedDateTime timestamp) {
    method getFile (line 71) | public String getFile(){
    method formatTimestamp (line 75) | private String formatTimestamp(ZonedDateTime timestamp, boolean withCo...
    method formatPrefix (line 85) | private String formatPrefix(String prefix,boolean withColor) {
    class Builder (line 99) | public static class Builder {
      method prefix (line 108) | public Builder prefix(String prefix) {
      method color (line 113) | public Builder color(String color) {
      method color (line 117) | public Builder color(String color, boolean fgBright) {
      method file (line 133) | public Builder file(String file){
      method timeFormatter (line 138) | public Builder timeFormatter(String formatOrConstant) {
      method useColor (line 166) | public Builder useColor(boolean useColor) {
      method logStdout (line 171) | public Builder logStdout(boolean logStdout) {
      method build (line 176) | public LogOutputSpec build() {

FILE: src/main/java/io/fabric8/maven/docker/log/LogOutputSpecFactory.java
  class LogOutputSpecFactory (line 30) | public class LogOutputSpecFactory {
    method LogOutputSpecFactory (line 36) | public LogOutputSpecFactory(boolean useColor, boolean logStdout, Strin...
    method createSpec (line 44) | public LogOutputSpec createSpec(String containerId, ImageConfiguration...
    method addPrefix (line 58) | private void addPrefix(LogOutputSpec.Builder builder, String logPrefix...
    method getPrefixFormatParameterLookups (line 67) | private Map<String, FormatParameterReplacer.Lookup> getPrefixFormatPar...
    method addLogFormat (line 85) | private void addLogFormat(LogOutputSpec.Builder builder, LogConfigurat...
    method extractLogConfiguration (line 95) | private LogConfiguration extractLogConfiguration(ImageConfiguration im...

FILE: src/main/java/io/fabric8/maven/docker/log/SharedPrintStream.java
  class SharedPrintStream (line 6) | class SharedPrintStream {
    method SharedPrintStream (line 11) | SharedPrintStream(PrintStream ps) {
    method getPrintStream (line 16) | PrintStream getPrintStream() {
    method allocate (line 20) | void allocate() {
    method close (line 24) | boolean close() {

FILE: src/main/java/io/fabric8/maven/docker/model/Container.java
  type Container (line 27) | public interface Container {
    method getCreated (line 29) | long getCreated();
    method getId (line 31) | String getId();
    method getImage (line 33) | String getImage();
    method getLabels (line 35) | Map<String, String> getLabels();
    method getName (line 37) | String getName();
    method getNetworkMode (line 39) | String getNetworkMode();
    method getPortBindings (line 41) | Map<String, PortBinding> getPortBindings();
    method isRunning (line 43) | boolean isRunning();
    method getIPAddress (line 50) | String getIPAddress();
    method getCustomNetworkIpAddresses (line 56) | Map<String, String> getCustomNetworkIpAddresses();
    method getExitCode (line 64) | Integer getExitCode();
    class PortBinding (line 66) | class PortBinding {
      method PortBinding (line 70) | public PortBinding(Integer hostPort, String hostIp) {
      method getHostIp (line 75) | public String getHostIp() {
      method getHostPort (line 79) | public Integer getHostPort() {

FILE: src/main/java/io/fabric8/maven/docker/model/ContainerDetails.java
  class ContainerDetails (line 14) | public class ContainerDetails implements Container {
    method ContainerDetails (line 43) | public ContainerDetails(JsonObject json) {
    method getCreated (line 47) | @Override
    method getId (line 54) | @Override
    method getImage (line 60) | @Override
    method getLabels (line 66) | @Override
    method getName (line 74) | @Override
    method getIPAddress (line 84) | @Override
    method getNetworkMode (line 95) | @Override
    method getCustomNetworkIpAddresses (line 106) | @Override
    method extractNetworks (line 117) | private Map<String, String> extractNetworks(JsonObject networkSettings) {
    method getPortBindings (line 134) | @Override
    method isRunning (line 146) | @Override
    method getExitCode (line 152) | @Override
    method isHealthy (line 161) | public boolean isHealthy() {
    method getHealthcheck (line 167) | public String getHealthcheck() {
    method addPortMapping (line 176) | private void addPortMapping(String port, JsonObject hostConfig, Map<St...
    method addPortMapping (line 183) | private void addPortMapping(String port, PortBinding binding, Map<Stri...
    method createPortBindings (line 191) | private Map<String, PortBinding> createPortBindings(JsonObject ports) {
    method mapLabels (line 208) | private Map<String, String> mapLabels(JsonObject labels) {

FILE: src/main/java/io/fabric8/maven/docker/model/ContainersListElement.java
  class ContainersListElement (line 11) | public class ContainersListElement implements Container {
    method ContainersListElement (line 30) | public ContainersListElement(JsonObject json) {
    method getCreated (line 34) | @Override
    method getId (line 39) | @Override
    method getImage (line 45) | @Override
    method getLabels (line 50) | @Override
    method getName (line 59) | @Override
    method getNetworkMode (line 79) | @Override
    method getPortBindings (line 85) | @Override
    method getIPAddress (line 94) | @Override
    method getCustomNetworkIpAddresses (line 100) | @Override
    method isRunning (line 106) | @Override
    method getExitCode (line 112) | @Override
    method createPortBinding (line 118) | private PortBinding createPortBinding(JsonObject object) {
    method createPortKey (line 128) | private String createPortKey(JsonObject object) {
    method mapLabels (line 132) | private Map<String, String> mapLabels(JsonObject labels) {
    method mapPortBindings (line 145) | private Map<String, PortBinding> mapPortBindings(JsonArray ports) {

FILE: src/main/java/io/fabric8/maven/docker/model/ExecDetails.java
  class ExecDetails (line 9) | public class ExecDetails {
    method ExecDetails (line 19) | public ExecDetails(JsonObject json) {
    method isRunning (line 23) | public boolean isRunning() {
    method getExitCode (line 27) | public Integer getExitCode() {
    method getEntryPoint (line 34) | public String getEntryPoint() {
    method getArguments (line 47) | public String[] getArguments() {

FILE: src/main/java/io/fabric8/maven/docker/model/Image.java
  type Image (line 9) | public interface Image {
    method getId (line 13) | String getId();
    method getParentId (line 18) | String getParentId();
    method getCreated (line 23) | long getCreated();
    method getSize (line 28) | long getSize();
    method getVirtualSize (line 33) | long getVirtualSize();
    method getLabels (line 38) | Map<String, String> getLabels();
    method getRepoTags (line 43) | List<String> getRepoTags();
    method getRepoDigests (line 48) | List<String> getRepoDigests();

FILE: src/main/java/io/fabric8/maven/docker/model/ImageArchiveManifest.java
  type ImageArchiveManifest (line 7) | public interface ImageArchiveManifest {
    method getEntries (line 11) | List<ImageArchiveManifestEntry> getEntries();
    method getConfig (line 18) | JsonObject getConfig(String configName);

FILE: src/main/java/io/fabric8/maven/docker/model/ImageArchiveManifestAdapter.java
  class ImageArchiveManifestAdapter (line 11) | public class ImageArchiveManifestAdapter implements ImageArchiveManifest {
    method ImageArchiveManifestAdapter (line 16) | public ImageArchiveManifestAdapter(JsonElement json) {
    method getEntries (line 30) | @Override
    method getConfig (line 35) | @Override
    method putConfig (line 40) | public JsonObject putConfig(String configName, JsonObject config) {

FILE: src/main/java/io/fabric8/maven/docker/model/ImageArchiveManifestEntry.java
  type ImageArchiveManifestEntry (line 8) | public interface ImageArchiveManifestEntry {
    method getId (line 12) | String getId();
    method getConfig (line 17) | String getConfig();
    method getRepoTags (line 22) | List<String> getRepoTags();
    method getLayers (line 27) | List<String> getLayers();

FILE: src/main/java/io/fabric8/maven/docker/model/ImageArchiveManifestEntryAdapter.java
  class ImageArchiveManifestEntryAdapter (line 12) | public class ImageArchiveManifestEntryAdapter implements ImageArchiveMan...
    method ImageArchiveManifestEntryAdapter (line 22) | public ImageArchiveManifestEntryAdapter(JsonObject json) {
    method getConfig (line 48) | @Override
    method getId (line 53) | @Override
    method getRepoTags (line 58) | @Override
    method getLayers (line 63) | @Override

FILE: src/main/java/io/fabric8/maven/docker/model/ImageDetails.java
  class ImageDetails (line 14) | public class ImageDetails implements Image {
    method ImageDetails (line 26) | public ImageDetails(JsonObject json) {
    method getId (line 30) | @Override
    method getParentId (line 35) | @Override
    method getCreated (line 40) | @Override
    method getSize (line 45) | @Override
    method getVirtualSize (line 50) | @Override
    method getLabels (line 55) | @Override
    method getRepoTags (line 62) | @Override
    method getRepoDigests (line 75) | @Override
    method mapLabels (line 88) | private Map<String, String> mapLabels(JsonObject labels) {

FILE: src/main/java/io/fabric8/maven/docker/model/Network.java
  type Network (line 3) | public interface Network {
    method getName (line 5) | String getName();
    method getId (line 7) | String getId();
    method getScope (line 9) | String getScope();
    method getDriver (line 11) | String getDriver();

FILE: src/main/java/io/fabric8/maven/docker/model/NetworksListElement.java
  class NetworksListElement (line 5) | public class NetworksListElement implements Network {
    method NetworksListElement (line 14) | public NetworksListElement(JsonObject json) {
    method getName (line 18) | @Override
    method getDriver (line 23) | @Override
    method getScope (line 28) | @Override
    method getId (line 33) | @Override

FILE: src/main/java/io/fabric8/maven/docker/service/ArchiveService.java
  class ArchiveService (line 37) | public class ArchiveService {
    method ArchiveService (line 44) | public ArchiveService(DockerAssemblyManager dockerAssemblyManager,Logg...
    method createDockerBuildArchive (line 58) | public File createDockerBuildArchive(ImageConfiguration imageConfig, M...
    method createDockerBuildArchive (line 73) | public File createDockerBuildArchive(ImageConfiguration imageConfig, M...
    method getAssemblyFiles (line 91) | public AssemblyFiles getAssemblyFiles(ImageConfiguration imageConfig, ...
    method createChangedFilesArchive (line 109) | public File createChangedFilesArchive(List<AssemblyFiles.Entry> entrie...
    method createArchive (line 116) | File createArchive(String imageName, BuildImageConfiguration buildConf...
    method createArchive (line 121) | File createArchive(String imageName, BuildImageConfiguration buildConf...

FILE: src/main/java/io/fabric8/maven/docker/service/BuildService.java
  class BuildService (line 38) | public class BuildService {
    method BuildService (line 48) | BuildService(DockerAccess docker, QueryService queryService, RegistryS...
    method buildImage (line 64) | public void buildImage(ImageConfiguration imageConfig, ImagePullManage...
    method buildArchive (line 84) | public File buildArchive(ImageConfiguration imageConfiguration, BuildC...
    method copyDockerArchive (line 109) | public void copyDockerArchive(ImageConfiguration imageConfiguration, F...
    method tagImage (line 116) | public void tagImage(ImageConfiguration imageConfig) throws DockerAcce...
    method buildImage (line 139) | protected void buildImage(ImageConfiguration imageConfig, MojoParamete...
    method tagImage (line 200) | public void tagImage(String imageName, String tag, String repo) throws...
    method prepareBuildArgs (line 208) | private Map<String, String> prepareBuildArgs(Map<String, String> build...
    method getArchiveImageName (line 216) | private String getArchiveImageName(BuildImageConfiguration buildConfig...
    method readArchiveManifest (line 243) | private ImageArchiveManifest readArchiveManifest(File tarArchive) thro...
    method matchArchiveImagesToPattern (line 263) | private String matchArchiveImagesToPattern(String imageNamePattern, Im...
    method getDockerfileName (line 292) | private String getDockerfileName(BuildImageConfiguration buildConfig) {
    method doBuildImage (line 300) | private String doBuildImage(String imageName, File dockerArchive, Buil...
    method addBuildArgs (line 306) | private Map<String, String> addBuildArgs(BuildContext buildContext) {
    method addBuildArgsFromProperties (line 318) | private Map<String, String> addBuildArgsFromProperties(Properties prop...
    method addBuildArgsFromDockerConfig (line 335) | private Map<String, String> addBuildArgsFromDockerConfig() {
    method autoPullBaseImage (line 365) | private void autoPullBaseImage(ImageConfiguration imageConfig, ImagePu...
    method extractBaseFromConfiguration (line 391) | private String extractBaseFromConfiguration(BuildImageConfiguration bu...
    method extractBaseFromDockerfile (line 403) | private List<String> extractBaseFromDockerfile(BuildImageConfiguration...
    method checkForNocache (line 418) | private boolean checkForNocache(ImageConfiguration imageConfig) {
    method checkForSquash (line 431) | private boolean checkForSquash(ImageConfiguration imageConfig) {
    method isEmpty (line 441) | private boolean isEmpty(String str) {
    class BuildContext (line 449) | public static class BuildContext implements Serializable {
      method BuildContext (line 457) | public BuildContext() {
      method getMojoParameters (line 460) | public MojoParameters getMojoParameters() {
      method getBuildArgs (line 464) | public Map<String, String> getBuildArgs() {
      method getRegistryConfig (line 468) | public RegistryService.RegistryConfig getRegistryConfig() {
      class Builder (line 472) | public static class Builder {
        method Builder (line 476) | public Builder() {
        method Builder (line 480) | public Builder(BuildContext context) {
        method mojoParameters (line 484) | public Builder mojoParameters(MojoParameters mojoParameters) {
        method buildArgs (line 489) | public Builder buildArgs(Map<String, String> buildArgs) {
        method registryConfig (line 494) | public Builder registryConfig(RegistryService.RegistryConfig regis...
        method build (line 499) | public BuildContext build() {

FILE: src/main/java/io/fabric8/maven/docker/service/ContainerTracker.java
  class ContainerTracker (line 15) | public class ContainerTracker {
    method registerContainer (line 35) | public synchronized void registerContainer(String containerId,
    method removeContainer (line 50) | public synchronized ContainerShutdownDescriptor removeContainer(String...
    method lookupContainer (line 65) | public synchronized String lookupContainer(String lookup) {
    method removeShutdownDescriptors (line 81) | public synchronized Collection<ContainerShutdownDescriptor> removeShut...
    method updatePomLabelMap (line 98) | private void updatePomLabelMap(GavLabel gavLabel, ContainerShutdownDes...
    method removeDescriptorFromPomLabelMap (line 109) | private void removeDescriptorFromPomLabelMap(ContainerShutdownDescript...
    method removeContainerIdFromLookupMaps (line 127) | private void removeContainerIdFromLookupMaps(String containerId) {
    method removeValueFromMap (line 132) | private void removeValueFromMap(Map<String, String> map, String value) {
    method updateImageToContainerMapping (line 142) | private void updateImageToContainerMapping(ImageConfiguration imageCon...
    method removeFromPerContainerMap (line 150) | private void removeFromPerContainerMap(List<ContainerShutdownDescripto...
    method removeFromPomLabelMap (line 161) | private List<ContainerShutdownDescriptor> removeFromPomLabelMap(GavLab...
    method clearAllMaps (line 169) | private void clearAllMaps() {
    class ContainerShutdownDescriptor (line 178) | static class ContainerShutdownDescriptor {
      method ContainerShutdownDescriptor (line 200) | ContainerShutdownDescriptor(ImageConfiguration imageConfig, String c...
      method getImageConfiguration (line 215) | public ImageConfiguration getImageConfiguration() {
      method getImage (line 219) | public String getImage() {
      method getContainerId (line 223) | public String getContainerId() {
      method getDescription (line 227) | public String getDescription() {
      method getShutdownGracePeriod (line 231) | public int getShutdownGracePeriod() {
      method getKillGracePeriod (line 235) | public int getKillGracePeriod() {
      method getPreStop (line 239) | public String getPreStop() {
      method isBreakOnError (line 243) | public boolean isBreakOnError() {
      method getStopMode (line 247) | public StopMode getStopMode() {
      method equals (line 251) | @Override
      method hashCode (line 262) | @Override

FILE: src/main/java/io/fabric8/maven/docker/service/DockerAccessFactory.java
  class DockerAccessFactory (line 26) | @Component(role = DockerAccessFactory.class, instantiationStrategy = "si...
    method createDockerAccess (line 29) | public DockerAccess createDockerAccess(DockerAccessContext dockerAcces...
    method createDockerConnectionDetector (line 48) | private DockerConnectionDetector createDockerConnectionDetector(Docker...
    method getDockerHostProviders (line 52) | private List<DockerConnectionDetector.DockerHostProvider> getDockerHos...
    method getDefaultDockerHostProviders (line 67) | private List<DockerConnectionDetector.DockerHostProvider> getDefaultDo...
    method setDockerHostAddressProperty (line 88) | private void setDockerHostAddressProperty(DockerAccessContext dockerAc...
    class DockerAccessContext (line 108) | public static class DockerAccessContext implements Serializable {
      method DockerAccessContext (line 128) | public DockerAccessContext() {
      method getProjectProperties (line 131) | public Properties getProjectProperties() {
      method getMachine (line 135) | public DockerMachineConfiguration getMachine() {
      method getDockerHostProviders (line 139) | public List<DockerConnectionDetector.DockerHostProvider> getDockerHo...
      method isSkipMachine (line 143) | public boolean isSkipMachine() {
      method getMinimalApiVersion (line 147) | public String getMinimalApiVersion() {
      method getDockerHost (line 151) | public String getDockerHost() {
      method getCertPath (line 155) | public String getCertPath() {
      method getMaxConnections (line 159) | public int getMaxConnections() {
      method getLog (line 163) | public Logger getLog() {
      class Builder (line 167) | public static class Builder {
        method Builder (line 171) | public Builder() {
        method Builder (line 175) | public Builder(DockerAccessContext context) {
        method projectProperties (line 179) | public Builder projectProperties(Properties projectProperties) {
        method machine (line 184) | public Builder machine(DockerMachineConfiguration machine) {
        method dockerHostProviders (line 189) | public Builder dockerHostProviders(List<DockerConnectionDetector.D...
        method skipMachine (line 194) | public Builder skipMachine(boolean skipMachine) {
        method minimalApiVersion (line 199) | public Builder minimalApiVersion(String minimalApiVersion) {
        method dockerHost (line 204) | public Builder dockerHost(String dockerHost) {
        method certPath (line 209) | public Builder certPath(String certPath) {
        method maxConnections (line 214) | public Builder maxConnections(int maxConnections) {
        method log (line 219) | public Builder log(Logger log) {
        method build (line 224) | public DockerAccessContext build() {

FILE: src/main/java/io/fabric8/maven/docker/service/ImagePullManager.java
  class ImagePullManager (line 12) | public class ImagePullManager {
    method ImagePullManager (line 22) | public ImagePullManager(CacheStore cacheStore, String imagePullPolicy,...
    method getImagePullPolicy (line 27) | ImagePullPolicy getImagePullPolicy() {
    method createPullPolicy (line 31) | public ImagePullPolicy createPullPolicy(String imagePullPolicy, String...
    method hasAlreadyPulled (line 50) | public boolean hasAlreadyPulled(String image) {
    method pulled (line 54) | public void pulled(String image) {
    type CacheStore (line 59) | public interface CacheStore {
      method get (line 60) | String get(String key);
      method put (line 62) | void put(String key, String value);
    method load (line 65) | public ImagePullCache load() {
    method save (line 78) | public void save(ImagePullCache cache) {
    class ImagePullCache (line 88) | class ImagePullCache {
      method ImagePullCache (line 92) | public ImagePullCache() {
      method ImagePullCache (line 96) | public ImagePullCache(String json) {
      method has (line 100) | public boolean has(String imageName) {
      method add (line 104) | public ImagePullCache add(String image) {
      method toString (line 109) | @Override

FILE: src/main/java/io/fabric8/maven/docker/service/JibBuildService.java
  class JibBuildService (line 31) | public class JibBuildService {
    method JibBuildService (line 42) | public JibBuildService(ServiceHub hub, MojoParameters mojoParameters, ...
    method build (line 48) | public void build(ImageConfiguration imageConfig, RegistryService.Regi...
    method push (line 85) | public void push(Collection<ImageConfiguration> imageConfigs, int retr...
    method prependRegistry (line 102) | static ImageConfiguration prependRegistry(ImageConfiguration imageConf...
    method getAssemblyTarArchive (line 111) | static File getAssemblyTarArchive(ImageConfiguration imageConfig, Serv...
    method getRegistryCredentials (line 119) | static Credential getRegistryCredentials(
    method getBuildTarArchive (line 149) | static File getBuildTarArchive(ImageConfiguration imageConfiguration, ...

FILE: src/main/java/io/fabric8/maven/docker/service/MojoExecutionService.java
  class MojoExecutionService (line 43) | public class MojoExecutionService {
    method MojoExecutionService (line 51) | MojoExecutionService(MavenProject project, MavenSession session, Build...
    method callPluginGoal (line 58) | public void callPluginGoal(String fullGoal) throws MojoFailureExceptio...
    method getMojoExecution (line 90) | private MojoExecution getMojoExecution(String executionId, MojoDescrip...
    method getPluginDescriptor (line 98) | PluginDescriptor getPluginDescriptor(MavenProject project, Plugin plugin)
    method splitGoalSpec (line 122) | private String[] splitGoalSpec(String fullGoal) throws MojoFailureExce...
    method toXpp3Dom (line 131) | private Xpp3Dom toXpp3Dom(PlexusConfiguration config) {

FILE: src/main/java/io/fabric8/maven/docker/service/QueryService.java
  class QueryService (line 17) | public class QueryService {
    method QueryService (line 26) | public QueryService(DockerAccess docker) {
    method getMandatoryContainer (line 37) | public Container getMandatoryContainer(String containerIdOrName) throw...
    method getContainer (line 51) | public Container getContainer(final String containerIdOrName) throws D...
    method getNetworkByName (line 61) | public Network getNetworkByName(final String networkName) throws Docke...
    method getNetworks (line 75) | public Set<Network> getNetworks() throws DockerAccessException {
    method getContainerName (line 86) | public String getContainerName(String containerId) throws DockerAccess...
    method listContainers (line 98) | public List<Container> listContainers(final boolean all) throws Docker...
    method getContainersForImage (line 111) | public List<Container> getContainersForImage(final String image, final...
    method listImages (line 123) | public List<Image> listImages(final boolean all) throws DockerAccessEx...
    method getImageId (line 134) | public String getImageId(String imageName) throws DockerAccessException {
    method getLatestContainerForImage (line 145) | public Container getLatestContainerForImage(String image) throws Docke...
    method hasContainer (line 170) | public boolean hasContainer(String containerName) throws DockerAccessE...
    method hasNetwork (line 182) | public boolean hasNetwork(String networkName) throws DockerAccessExcep...
    method hasImage (line 193) | public boolean hasImage(String name) throws DockerAccessException {

FILE: src/main/java/io/fabric8/maven/docker/service/RegistryService.java
  class RegistryService (line 24) | public class RegistryService {
    method RegistryService (line 29) | RegistryService(DockerAccess docker, Logger log) {
    method pushImages (line 44) | public void pushImages(Collection<ImageConfiguration> imageConfigs,
    method pullImageWithPolicy (line 87) | public void pullImageWithPolicy(String image, ImagePullManager pullMan...
    method imageRequiresPull (line 121) | private boolean imageRequiresPull(boolean hasImage, ImagePullPolicy pu...
    method createAuthConfig (line 144) | private AuthConfig createAuthConfig(boolean isPush, String user, Strin...
    class RegistryConfig (line 155) | public static class RegistryConfig implements Serializable {
      method RegistryConfig (line 167) | public RegistryConfig() {
      method getRegistry (line 170) | public String getRegistry() {
      method getSettings (line 174) | public Settings getSettings() {
      method getAuthConfigFactory (line 178) | public AuthConfigFactory getAuthConfigFactory() {
      method isSkipExtendedAuth (line 182) | public boolean isSkipExtendedAuth() {
      method getAuthConfig (line 186) | public Map getAuthConfig() {
      class Builder (line 190) | public static class Builder {
        method Builder (line 194) | public Builder() {
        method Builder (line 198) | public Builder(RegistryConfig context) {
        method registry (line 202) | public Builder registry(String registry) {
        method settings (line 207) | public Builder settings(Settings settings) {
        method authConfigFactory (line 212) | public Builder authConfigFactory(AuthConfigFactory authConfigFacto...
        method skipExtendedAuth (line 217) | public Builder skipExtendedAuth(boolean skipExtendedAuth) {
        method authConfig (line 222) | public Builder authConfig(Map authConfig) {
        method build (line 227) | public RegistryConfig build() {

FILE: src/main/java/io/fabric8/maven/docker/service/RunService.java
  class RunService (line 72) | public class RunService {
    method RunService (line 87) | public RunService(DockerAccess docker,
    method execInContainer (line 108) | public String execInContainer(String containerId, String command, Imag...
    method createAndStartContainer (line 137) | public String createAndStartContainer(ImageConfiguration imageConfig,
    method stopContainer (line 169) | public void stopContainer(String containerId,
    method stopPreviouslyStartedContainer (line 188) | public void stopPreviouslyStartedContainer(String containerId,
    method stopStartedContainers (line 204) | public void stopStartedContainers(boolean keepContainer,
    method collectCustomNetworks (line 233) | private void collectCustomNetworks(Set<Network> networksToRemove, Cont...
    method lookupContainer (line 246) | public String lookupContainer(String lookup) {
    method getImagesConfigsInOrder (line 255) | public List<StartOrderResolver.Resolvable> getImagesConfigsInOrder(Que...
    method createPortMapping (line 266) | public PortMapping createPortMapping(RunImageConfiguration runConfig, ...
    method addShutdownHookForStoppingContainers (line 277) | public void addShutdownHookForStoppingContainers(final boolean keepCon...
    method convertToResolvables (line 290) | private List<StartOrderResolver.Resolvable> convertToResolvables(List<...
    method createContainerConfig (line 303) | ContainerCreateConfig createContainerConfig(String imageName, RunImage...
    method mergeLabels (line 338) | private Map<String, String> mergeLabels(Map<String, String> labels, Ga...
    method createContainerHostConfig (line 349) | ContainerHostConfig createContainerHostConfig(RunImageConfiguration ru...
    method addNetworkingConfig (line 386) | private void addNetworkingConfig(ContainerHostConfig config, RunImageC...
    method addVolumeConfig (line 397) | private void addVolumeConfig(ContainerHostConfig config, RunImageConfi...
    method findContainerIdsForLinks (line 406) | private List<String> findContainerIdsForLinks(List<String> links, bool...
    method findVolumesFromContainers (line 422) | private List<String> findVolumesFromContainers(List<String> images) th...
    method findContainerId (line 439) | private String findContainerId(String imageNameOrAlias, boolean checkA...
    method startContainer (line 452) | private void startContainer(ImageConfiguration imageConfig, String id,...
    method updateMappedPortsAndAddresses (line 458) | private void updateMappedPortsAndAddresses(String containerId, PortMap...
    method shutdown (line 467) | private void shutdown(ContainerTracker.ContainerShutdownDescriptor des...
    method createCustomNetworkIfNotExistant (line 515) | public void createCustomNetworkIfNotExistant(String customNetwork) thr...
    method removeCustomNetworks (line 523) | public void removeCustomNetworks(Collection<Network> networks) throws ...
    method adjustGracePeriod (line 541) | private int adjustGracePeriod(int gracePeriod) {
    method removeContainer (line 551) | private void removeContainer(ContainerTracker.ContainerShutdownDescrip...
    method shutdownAndWait (line 562) | private long shutdownAndWait(final String containerId, final int killG...
    method createVolumesAsPerVolumeBinds (line 596) | public List<String> createVolumesAsPerVolumeBinds(ServiceHub hub, List...

FILE: src/main/java/io/fabric8/maven/docker/service/ServiceHub.java
  class ServiceHub (line 35) | public class ServiceHub {
    method ServiceHub (line 50) | ServiceHub(DockerAccess dockerAccess, ContainerTracker containerTracke...
    method getDockerAccess (line 84) | public DockerAccess getDockerAccess() {
    method getBuildService (line 94) | public BuildService getBuildService() {
    method getQueryService (line 104) | public QueryService getQueryService() {
    method getRegistryService (line 114) | public RegistryService getRegistryService() {
    method getRunService (line 125) | public RunService getRunService() {
    method getVolumeService (line 135) | public VolumeService getVolumeService() {
    method getWatchService (line 145) | public WatchService getWatchService() {
    method getWaitService (line 156) | public WaitService getWaitService() {
    method getArchiveService (line 166) | public ArchiveService getArchiveService() {
    method getMojoExecutionService (line 175) | public MojoExecutionService getMojoExecutionService() {
    method getDockerAssemblyManager (line 179) | public DockerAssemblyManager getDockerAssemblyManager() {
    method checkDockerAccessInitialization (line 183) | private synchronized void checkDockerAccessInitialization() {

FILE: src/main/java/io/fabric8/maven/docker/service/ServiceHubFactory.java
  class ServiceHubFactory (line 16) | @Component(role = ServiceHubFactory.class, instantiationStrategy = "sing...
    method createServiceHub (line 30) | public ServiceHub createServiceHub(MavenProject project, MavenSession ...
    method getLogOutputSpecFactory (line 36) | public LogOutputSpecFactory getLogOutputSpecFactory() {

FILE: src/main/java/io/fabric8/maven/docker/service/VolumeService.java
  class VolumeService (line 16) | public class VolumeService {
    method VolumeService (line 20) | VolumeService(DockerAccess dockerAccess) {
    method createVolume (line 24) | public String createVolume(VolumeConfiguration vc) throws DockerAccess...
    method removeVolume (line 34) | public void removeVolume(String volumeName) throws DockerAccessExcepti...

FILE: src/main/java/io/fabric8/maven/docker/service/WaitService.java
  class WaitService (line 36) | public class WaitService {
    method WaitService (line 42) | public WaitService(DockerAccess dockerAccess, QueryService queryServic...
    method wait (line 50) | public void wait(ImageConfiguration imageConfig, Properties projectPro...
    method getTimeOut (line 82) | private int getTimeOut(ImageConfiguration imageConfig) {
    method extractCheckerLog (line 87) | private String extractCheckerLog(List<WaitChecker> checkers) {
    method prepareWaitCheckers (line 95) | private List<WaitChecker> prepareWaitCheckers(ImageConfiguration image...
    method getWaitConfiguration (line 132) | private WaitConfiguration getWaitConfiguration(ImageConfiguration imag...
    method getUrlWaitChecker (line 139) | private WaitChecker getUrlWaitChecker(String imageConfigDesc,
    method getTcpWaitChecker (line 156) | private WaitChecker getTcpWaitChecker(Container container,
    method getTcpPorts (line 193) | private List<Integer> getTcpPorts(WaitConfiguration.TcpConfiguration t...
    method getTcpMode (line 201) | private WaitConfiguration.TcpConfigMode getTcpMode(WaitConfiguration.T...
    method getTcpHost (line 210) | private String getTcpHost(WaitConfiguration.TcpConfiguration tcpConfig...
    class ContainerRunningPrecondition (line 219) | private class ContainerRunningPrecondition implements WaitUtil.Precond...
      method ContainerRunningPrecondition (line 224) | ContainerRunningPrecondition(DockerAccess dockerAccess, String conta...
      method isOk (line 229) | @Override
      method cleanup (line 239) | @Override
      method getExitCode (line 256) | Integer getExitCode() {

FILE: src/main/java/io/fabric8/maven/docker/service/WatchService.java
  class WatchService (line 36) | public class WatchService {
    method WatchService (line 46) | public WatchService(ArchiveService archiveService, BuildService buildS...
    method watch (line 57) | public synchronized void watch(WatchContext context, BuildService.Buil...
    method schedule (line 116) | private void schedule(ScheduledExecutorService executor, Runnable runn...
    method createCopyWatchTask (line 120) | private Runnable createCopyWatchTask(final ImageWatcher watcher,
    method callPostExec (line 146) | private void callPostExec(ImageWatcher watcher) throws DockerAccessExc...
    method createBuildWatchTask (line 153) | private Runnable createBuildWatchTask(final ImageWatcher watcher,
    method createRestartWatchTask (line 192) | private Runnable createRestartWatchTask(final ImageWatcher watcher)
    method restartContainer (line 215) | private void restartContainer(ImageWatcher watcher) throws Exception {
    method defaultContainerRestartTask (line 225) | private Task<ImageWatcher> defaultContainerRestartTask() {
    method getPreStopCommand (line 260) | private String getPreStopCommand(ImageConfiguration imageConfig) {
    method callPostGoal (line 269) | private void callPostGoal(ImageWatcher watcher) throws MojoFailureExce...
    class ImageWatcher (line 281) | public class ImageWatcher {
      method ImageWatcher (line 291) | public ImageWatcher(ImageConfiguration imageConfig, WatchContext wat...
      method getContainerId (line 303) | public String getContainerId() {
      method getInterval (line 307) | public long getInterval() {
      method getPostGoal (line 311) | public String getPostGoal() {
      method isCopy (line 315) | public boolean isCopy() {
      method isBuild (line 319) | public boolean isBuild() {
      method isRun (line 323) | public boolean isRun() {
      method getImageConfiguration (line 327) | public ImageConfiguration getImageConfiguration() {
      method setImageId (line 331) | public void setImageId(String imageId) {
      method setContainerId (line 335) | public void setContainerId(String containerId) {
      method getImageName (line 339) | public String getImageName() {
      method getAndSetImageId (line 343) | public String getAndSetImageId(String currentImageId) {
      method getPostExec (line 347) | public String getPostExec() {
      method getWatchContext (line 351) | public WatchContext getWatchContext() {
      method getWatchInterval (line 357) | private int getWatchInterval(ImageConfiguration imageConfig) {
      method getPostExec (line 363) | private String getPostExec(ImageConfiguration imageConfig) {
      method getPostGoal (line 369) | private String getPostGoal(ImageConfiguration imageConfig) {
      method getWatchMode (line 376) | private WatchMode getWatchMode(ImageConfiguration imageConfig) {
    class WatchContext (line 388) | public static class WatchContext implements Serializable {
      method WatchContext (line 424) | public WatchContext() {
      method getMojoParameters (line 427) | public MojoParameters getMojoParameters() {
      method getWatchMode (line 431) | public WatchMode getWatchMode() {
      method getWatchInterval (line 435) | public int getWatchInterval() {
      method isKeepRunning (line 439) | public boolean isKeepRunning() {
      method getWatchPostGoal (line 443) | public String getWatchPostGoal() {
      method getWatchPostExec (line 447) | public String getWatchPostExec() {
      method getGavLabel (line 451) | public GavLabel getGavLabel() {
      method isKeepContainer (line 455) | public boolean isKeepContainer() {
      method isRemoveVolumes (line 459) | public boolean isRemoveVolumes() {
      method isAutoCreateCustomNetworks (line 463) | public boolean isAutoCreateCustomNetworks() {
      method getImageCustomizer (line 467) | public Task<ImageConfiguration> getImageCustomizer() {
      method getContainerRestarter (line 471) | public Task<ImageWatcher> getContainerRestarter() {
      method getBuildTimestamp (line 475) | public Date getBuildTimestamp() {
      method getContainerNamePattern (line 479) | public String getContainerNamePattern() {
      class Builder (line 483) | public static class Builder {
        method Builder (line 487) | public Builder() {
        method Builder (line 491) | public Builder(WatchContext context) {
        method mojoParameters (line 495) | public Builder mojoParameters(MojoParameters mojoParameters) {
        method watchMode (line 500) | public Builder watchMode(WatchMode watchMode) {
        method watchInterval (line 505) | public Builder watchInterval(int watchInterval) {
        method keepRunning (line 510) | public Builder keepRunning(boolean keepRunning) {
        method watchPostGoal (line 515) | public Builder watchPostGoal(String watchPostGoal) {
        method watchPostExec (line 520) | public Builder watchPostExec(String watchPostExec) {
        method pomLabel (line 525) | public Builder pomLabel(GavLabel gavLabel) {
        method keepContainer (line 530) | public Builder keepContainer(boolean keepContainer) {
        method removeVolumes (line 535) | public Builder removeVolumes(boolean removeVolumes) {
        method imageCustomizer (line 540) | public Builder imageCustomizer(Task<ImageConfiguration> imageCusto...
        method containerRestarter (line 545) | public Builder containerRestarter(Task<ImageWatcher> containerRest...
        method autoCreateCustomNetworks (line 550) | public Builder autoCreateCustomNetworks(boolean autoCreateCustomNe...
        method follow (line 555) | public Builder follow(boolean follow) {
        method showLogs (line 560) | public Builder showLogs(String showLogs) {
        method hub (line 565) | public Builder hub(ServiceHub hub){
        method serviceHubFactory (line 570) | public Builder serviceHubFactory(ServiceHubFactory serviceHubFacto...
        method dispatcher (line 575) | public Builder dispatcher(LogDispatcher dispatcher){
        method buildTimestamp (line 580) | public Builder buildTimestamp(Date buildTimestamp) {
        method containerNamePattern (line 585) | public Builder containerNamePattern(String containerNamePattern) {
        method build (line 591) | public WatchContext build() {

FILE: src/main/java/io/fabric8/maven/docker/service/helper/StartContainerExecutor.java
  class StartContainerExecutor (line 26) | public class StartContainerExecutor {
    method StartContainerExecutor (line 42) | private StartContainerExecutor(){}
    method startContainer (line 44) | public String startContainer() throws IOException, ExecException {
    method queryContainerProperties (line 57) | public Properties queryContainerProperties(String containerId)
    method getExposedPropertyKeyPart (line 82) | String getExposedPropertyKeyPart() {
    method addDot (line 90) | private String addDot(String part) {
    method showLogsIfRequested (line 94) | private void showLogsIfRequested(String containerId) {
    method waitAndPostExec (line 101) | private void waitAndPostExec(String containerId, Properties projProper...
    method showLogs (line 118) | boolean showLogs() {
    class Builder (line 142) | public static class Builder {
      method Builder (line 145) | public Builder(){
      method log (line 149) | public Builder log(Logger log) {
      method logOutputSpecFactory (line 154) | public Builder logOutputSpecFactory(LogOutputSpecFactory factory) {
      method exposeContainerProps (line 159) | public Builder exposeContainerProps(String exposeContainerProps) {
      method serviceHub (line 164) | public Builder serviceHub(ServiceHub hub) {
      method projectProperties (line 169) | public Builder projectProperties(Properties props) {
      method basedir (line 174) | public Builder basedir(File dir) {
      method follow (line 179) | public Builder follow(boolean follow) {
      method showLogs (line 184) | public Builder showLogs(String showLogs) {
      method containerNamePattern (line 189) | public Builder containerNamePattern(String pattern) {
      method buildTimestamp (line 194) | public Builder buildTimestamp(Date date) {
      method dispatcher (line 201) | public Builder dispatcher(LogDispatcher dispatcher) {
      method portMapping (line 206) | public Builder portMapping(PortMapping portMapping) {
      method gavLabel (line 211) | public Builder gavLabel(GavLabel gavLabel) {
      method imageConfig (line 216) | public Builder imageConfig(ImageConfiguration imageConfig) {
      method build (line 221) | public StartContainerExecutor build() {

FILE: src/main/java/io/fabric8/maven/docker/util/AnsiLogger.java
  class AnsiLogger (line 25) | public class AnsiLogger implements Logger {
    method AnsiLogger (line 57) | public AnsiLogger(Log log, boolean useColor, String verbose) {
    method AnsiLogger (line 61) | public AnsiLogger(Log log, boolean useColor, String verbose, boolean b...
    method AnsiLogger (line 65) | public AnsiLogger(Log log, boolean useColor, String verbose, boolean b...
    method debug (line 74) | public void debug(String message, Object ... params) {
    method info (line 81) | public void info(String message, Object ... params) {
    method verbose (line 86) | public void verbose(LogVerboseCategory logVerboseCategory, String mess...
    method warn (line 93) | public void warn(String format, Object ... params) {
    method error (line 98) | public void error(String message, Object ... params) {
    method errorMessage (line 102) | @Override
    method isDebugEnabled (line 110) | public boolean isDebugEnabled() {
    method isVerboseEnabled (line 114) | public boolean isVerboseEnabled() {
    method progressStart (line 121) | public void progressStart() {
    method progressUpdate (line 134) | public void progressUpdate(String layerId, String status, String progr...
    method updateAnsiProgress (line 145) | private void updateAnsiProgress(String imageId, String status, String ...
    method updateNonAnsiProgress (line 178) | private void updateNonAnsiProgress(String imageId) {
    method progressFinished (line 192) | public void progressFinished() {
    method flush (line 202) | private void flush() {
    method initializeColor (line 206) | private void initializeColor(boolean useColor) {
    method println (line 217) | private void println(String txt) {
    method print (line 221) | private void print(String txt) {
    method colored (line 225) | private String colored(String message, Ansi.Color color, boolean addPr...
    method format (line 232) | private String format(String message, Object[] params) {
    method evaluateEmphasis (line 245) | private String evaluateEmphasis(String message, Ansi.Color msgColor) {
    method getEmphasisColor (line 293) | private String getEmphasisColor(String id) {
    method checkVerboseLoggingEnabled (line 305) | private void checkVerboseLoggingEnabled(String verbose) {
    method checkBackwardVersionValues (line 325) | private Boolean checkBackwardVersionValues(String verbose) {
    method getVerboseModesFromString (line 335) | private List<LogVerboseCategory> getVerboseModesFromString(String grou...

FILE: src/main/java/io/fabric8/maven/docker/util/AuthConfigFactory.java
  class AuthConfigFactory (line 50) | public class AuthConfigFactory {
    method AuthConfigFactory (line 69) | public AuthConfigFactory(PlexusContainer container) {
    method setLog (line 73) | public void setLog(Logger log) {
    method createAuthConfig (line 113) | public AuthConfig createAuthConfig(boolean isPush, boolean skipExtende...
    method extendedAuthentication (line 150) | private AuthConfig extendedAuthentication(AuthConfig standardAuthConfi...
    method createStandardAuthConfig (line 189) | private AuthConfig createStandardAuthConfig(boolean isPush, Map authCo...
    method getAuthConfigViaAwsSdk (line 275) | private AuthConfig getAuthConfigViaAwsSdk() {
    method getAuthConfigFromAwsEnvironmentVariables (line 291) | private AuthConfig getAuthConfigFromAwsEnvironmentVariables() {
    method getAuthConfigFromEC2InstanceRole (line 310) | private AuthConfig getAuthConfigFromEC2InstanceRole() throws IOExcepti...
    method getAuthConfigFromTaskRole (line 347) | private AuthConfig getAuthConfigFromTaskRole() throws IOException {
    method readAwsCredentials (line 365) | private AuthConfig readAwsCredentials(CloseableHttpClient client, Http...
    method getMetadataEndpointForCredentials (line 388) | private URI getMetadataEndpointForCredentials() {
    method getAuthConfigFromSystemProperties (line 412) | private AuthConfig getAuthConfigFromSystemProperties(LookupMode lookup...
    method getAuthProperty (line 429) | private String getAuthProperty(Properties props, LookupMode lookupMode) {
    method getAuthConfigFromOpenShiftConfig (line 438) | private AuthConfig getAuthConfigFromOpenShiftConfig(LookupMode lookupM...
    method getAuthConfigFromPluginConfiguration (line 461) | private AuthConfig getAuthConfigFromPluginConfiguration(LookupMode loo...
    method getAuthConfigFromSettings (line 476) | private AuthConfig getAuthConfigFromSettings(Settings settings, String...
    method getAuthConfigFromDockerConfig (line 495) | private AuthConfig getAuthConfigFromDockerConfig(String registry) thro...
    method extractAuthConfigFromDockerConfigAuths (line 521) | private AuthConfig extractAuthConfigFromDockerConfigAuths(String regis...
    method extractAuthConfigFromCredentialsHelper (line 532) | private AuthConfig extractAuthConfigFromCredentialsHelper(String regis...
    method getCredentialsNode (line 541) | private JsonObject getCredentialsNode(JsonObject auths,String registry...
    method getAuthConfigMapToCheck (line 554) | private Map getAuthConfigMapToCheck(LookupMode lookupMode, Map authCon...
    method parseOpenShiftConfig (line 566) | private AuthConfig parseOpenShiftConfig() {
    method parseContext (line 586) | private AuthConfig parseContext(Map kubeConfig, Map context) {
    method parseUser (line 608) | private AuthConfig parseUser(String userName, Map user) {
    method validateMandatoryOpenShiftLogin (line 623) | private AuthConfig validateMandatoryOpenShiftLogin(AuthConfig openShif...
    method checkForServer (line 637) | private Server checkForServer(Server server, String id, String registr...
    method decrypt (line 648) | private String decrypt(String password) throws MojoExecutionException {
    method createAuthConfigFromServer (line 661) | private AuthConfig createAuthConfigFromServer(Server server) throws Mo...
    method extractFromServerConfiguration (line 670) | private String extractFromServerConfiguration(Object configuration, St...
    method getLookupMode (line 684) | private LookupMode getLookupMode(boolean isPush) {
    type LookupMode (line 688) | private enum LookupMode {
      method LookupMode (line 697) | LookupMode(String sysPropPrefix,String configMapKey) {
      method asSysProperty (line 702) | public String asSysProperty(String prop) {
      method getConfigMapKey (line 706) | public String getConfigMapKey() {

FILE: src/main/java/io/fabric8/maven/docker/util/AutoPullMode.java
  type AutoPullMode (line 27) | public enum AutoPullMode {
    method AutoPullMode (line 37) | AutoPullMode(boolean doPullIfNotPresent, String... vals) {
    method doPullIfNotPresent (line 42) | public boolean doPullIfNotPresent() {
    method alwaysPull (line 46) | public boolean alwaysPull() {
    method fromString (line 50) | static public AutoPullMode fromString(String val) {

FILE: src/main/java/io/fabric8/maven/docker/util/ContainerNamingUtil.java
  class ContainerNamingUtil (line 21) | public class ContainerNamingUtil {
    method ContainerNamingUtil (line 28) | private ContainerNamingUtil() { }
    method formatContainerName (line 30) | public static String formatContainerName(final ImageConfiguration image,
    method getContainersToStop (line 66) | public static Collection<Container> getContainersToStop(final ImageCon...
    method replacePlaceholders (line 91) | private static String replacePlaceholders(String containerNamePattern,...
    method keepOnlyLastIndexedContainer (line 105) | private static Collection<Container> keepOnlyLastIndexedContainer(Coll...
    method extractContainerNames (line 134) | private static Set<String> extractContainerNames(final Collection<Cont...
    method extractContainerNamePattern (line 142) | private static String extractContainerNamePattern(ImageConfiguration i...
    method cleanImageName (line 155) | private static String cleanImageName(final String imageName) {

FILE: src/main/java/io/fabric8/maven/docker/util/CredentialHelperClient.java
  class CredentialHelperClient (line 15) | public class CredentialHelperClient {
    method CredentialHelperClient (line 24) | public CredentialHelperClient(Logger log, String credentialsStore) {
    method getName (line 29) | public String getName() {
    method getVersion (line 33) | public String getVersion() {
    method getAuthConfig (line 41) | public AuthConfig getAuthConfig(String registryToLookup) throws MojoEx...
    method toAuthConfig (line 53) | AuthConfig toAuthConfig(JsonObject credential){
    class VersionCommand (line 68) | private class VersionCommand extends ExternalCommand {
      method VersionCommand (line 72) | VersionCommand() {
      method getArgs (line 76) | @Override
      method processLine (line 81) | @Override
      method getVersion (line 87) | public String getVersion() throws IOException {
    class GetCommand (line 94) | private class GetCommand extends ExternalCommand {
      method GetCommand (line 98) | GetCommand() {
      method getArgs (line 102) | @Override
      method processLine (line 107) | @Override
      method getCredentialNode (line 112) | public JsonObject getCredentialNode(String registryToLookup) throws ...

FILE: src/main/java/io/fabric8/maven/docker/util/DeepCopy.java
  class DeepCopy (line 21) | public class DeepCopy {
    method copy (line 27) | public static <T> T copy(T orig) {

FILE: src/main/java/io/fabric8/maven/docker/util/DockerFileUtil.java
  class DockerFileUtil (line 44) | public class DockerFileUtil {
    method DockerFileUtil (line 46) | private DockerFileUtil() {}
    method extractBaseImages (line 56) | public static List<String> extractBaseImages(File dockerFile, FixedStr...
    method extractArgs (line 83) | public static Map<String, String> extractArgs(File dockerfile, FixedSt...
    method extractLines (line 95) | public static List<String[]> extractLines(File dockerFile, String keyw...
    method interpolate (line 118) | public static String interpolate(File dockerFile, FixedStringSearchInt...
    method createInterpolator (line 136) | public static FixedStringSearchInterpolator createInterpolator(MojoPar...
    method extractArgsFromLines (line 158) | protected static Map<String, String> extractArgsFromLines(List<String[...
    method resolveImageTagFromArgs (line 168) | private static String resolveImageTagFromArgs(String imageTagString, M...
    method resolveArgValueFromStrContainingArgKey (line 186) | private static String resolveArgValueFromStrContainingArgKey(String ar...
    method getFileReaderFromDir (line 193) | private static Reader getFileReaderFromDir(File file) {
    method readDockerConfig (line 206) | public static JsonObject readDockerConfig() {
    method extractDelimiters (line 215) | public static String[] extractDelimiters(String filter) {
    method readKubeConfig (line 230) | public static Map<String,?> readKubeConfig() {
    method getHomeDir (line 243) | private static File getHomeDir() {
    method updateMapWithArgValue (line 251) | private static void updateMapWithArgValue(Map<String, String> result, ...
    method validateArgValue (line 268) | private static void validateArgValue(String argStringParam) {

FILE: src/main/java/io/fabric8/maven/docker/util/DockerPathUtil.java
  class DockerPathUtil (line 15) | public class DockerPathUtil {
    method resolveAbsolutely (line 32) | public static File resolveAbsolutely(String pathToResolve, String base...

FILE: src/main/java/io/fabric8/maven/docker/util/EnvUtil.java
  class EnvUtil (line 30) | public class EnvUtil {
    method EnvUtil (line 40) | private EnvUtil() {}
    method convertTcpToHttpUrl (line 43) | public static String convertTcpToHttpUrl(String connect) {
    method extractLargerVersion (line 59) | public static String extractLargerVersion(String versionA, String vers...
    method greaterOrEqualsVersion (line 85) | public static boolean greaterOrEqualsVersion(String versionA, String v...
    method apply (line 91) | @Override
    method splitOnLastColon (line 110) | public static List<String[]> splitOnLastColon(List<String> listToSplit) {
    method apply (line 120) | @Override
    method apply (line 127) | @Override
    method apply (line 134) | @Nullable
    method removeEmptyEntries (line 146) | @Nonnull
    method splitAtCommasAndTrim (line 161) | @Nonnull
    method splitOnSpaceWithEscape (line 170) | public static String[] splitOnSpaceWithEscape(String toSplit) {
    method stringJoin (line 187) | public static String stringJoin(List list, String separator) {
    method getPropertiesWithSystemOverrides (line 208) | public static Properties getPropertiesWithSystemOverrides(MavenProject...
    method extractFromPropertiesAsMap (line 224) | public static Map<String, String> extractFromPropertiesAsMap(String pr...
    method extractFromPropertiesAsList (line 254) | public static List<String> extractFromPropertiesAsList(String prefix, ...
    method extractMavenPropertyName (line 288) | public static String extractMavenPropertyName(String propName) {
    method fixupPath (line 303) | public static String fixupPath(String path) {
    method formatDurationTill (line 324) | public static String formatDurationTill(long start) {
    method propMatchesPrefix (line 359) | private static boolean propMatchesPrefix(String prefix, String key) {
    method firstRegistryOf (line 368) | public static String firstRegistryOf(String ... checkFirst) {
    method ensureRegistryHttpUrl (line 379) | public static String ensureRegistryHttpUrl(String registry) {
    method prepareAbsoluteOutputDirPath (line 387) | public static File prepareAbsoluteOutputDirPath(MojoParameters params,...
    method prepareAbsoluteSourceDirPath (line 391) | public static File prepareAbsoluteSourceDirPath(MojoParameters params,...
    method prepareAbsolutePath (line 395) | private static File prepareAbsolutePath(MojoParameters params, String ...
    method storeTimestamp (line 410) | public static void storeTimestamp(File tsFile, Date buildDate) throws ...
    method loadTimestamp (line 427) | public static Date loadTimestamp(File tsFile) throws IOException {
    method isWindows (line 440) | public static boolean isWindows() {
    method isMaven350OrLater (line 444) | public static boolean isMaven350OrLater(MavenSession mavenSession) {

FILE: src/main/java/io/fabric8/maven/docker/util/FormatParameterReplacer.java
  class FormatParameterReplacer (line 11) | public class FormatParameterReplacer {
    method FormatParameterReplacer (line 18) | public FormatParameterReplacer(Map<String, Lookup> lookupMap) {
    method replace (line 22) | public synchronized String replace(String input) {
    method formatElement (line 36) | private String formatElement(String options, String what) {
    type Lookup (line 47) | public interface Lookup {
      method lookup (line 48) | String lookup();

FILE: src/main/java/io/fabric8/maven/docker/util/GavLabel.java
  class GavLabel (line 26) | public class GavLabel {
    method GavLabel (line 35) | public GavLabel(String label) {
    method GavLabel (line 52) | public GavLabel(String groupId, String artifactId, String version) {
    method getKey (line 61) | public String getKey() {
    method getValue (line 69) | public String getValue() {
    method equals (line 73) | @Override
    method hashCode (line 85) | @Override

FILE: src/main/java/io/fabric8/maven/docker/util/ImageArchiveUtil.java
  class ImageArchiveUtil (line 33) | public class ImageArchiveUtil {
    method createUncompressedStream (line 36) | private static InputStream createUncompressedStream(InputStream possib...
    method readManifest (line 59) | public static ImageArchiveManifest readManifest(File file) throws IOEx...
    method readManifest (line 75) | public static ImageArchiveManifest readManifest(InputStream inputStrea...
    method findEntryByRepoTag (line 124) | public static ImageArchiveManifestEntry findEntryByRepoTag(String repo...
    method findEntryByRepoTagPattern (line 147) | public static Pair<String, ImageArchiveManifestEntry> findEntryByRepoT...
    method findEntryByRepoTagPattern (line 158) | public static Pair<String, ImageArchiveManifestEntry> findEntryByRepoT...
    method findEntriesByRepoTagPattern (line 183) | public static Map<String, ImageArchiveManifestEntry> findEntriesByRepo...
    method findEntriesByRepoTagPattern (line 194) | public static Map<String, ImageArchiveManifestEntry> findEntriesByRepo...
    method mapEntriesById (line 220) | public static Map<String, ImageArchiveManifestEntry> mapEntriesById(It...

FILE: src/main/java/io/fabric8/maven/docker/util/ImageName.java
  class ImageName (line 29) | public class ImageName {
    method ImageName (line 51) | public ImageName(String fullName) {
    method ImageName (line 62) | public ImageName(String fullName, String givenTag) {
    method getRepository (line 101) | public String getRepository() {
    method getRegistry (line 105) | public String getRegistry() {
    method getTag (line 109) | public String getTag() {
    method getDigest (line 113) | public String getDigest() {
    method hasRegistry (line 117) | public boolean hasRegistry() {
    method joinTail (line 121) | private String joinTail(String[] parts) {
    method isRegistry (line 132) | private boolean isRegistry(String part) {
    method getNameWithoutTag (line 142) | public String getNameWithoutTag() {
    method getNameWithoutTag (line 155) | public String getNameWithoutTag(String optionalRegistry) {
    method getFullName (line 171) | public String getFullName() {
    method getFullName (line 184) | public String getFullName(String optionalRegistry) {
    method getUser (line 201) | public String getUser() {
    method getSimpleName (line 210) | public String getSimpleName() {
    method getNameWithOptionalRepository (line 215) | public String getNameWithOptionalRepository(String optionalRepository) {
    method validate (line 232) | public static void validate(String image) {
    method doValidate (line 238) | private void doValidate() {
    method parseComponentsBeforeTag (line 269) | private void parseComponentsBeforeTag(String rest) {

FILE: src/main/java/io/fabric8/maven/docker/util/ImageNameFormatter.java
  class ImageNameFormatter (line 35) | public class ImageNameFormatter implements ConfigHelper.NameFormatter {
    method ImageNameFormatter (line 42) | public ImageNameFormatter(MavenProject project, Date now) {
    method format (line 47) | @Override
    method initLookups (line 60) | private Map<String, FormatParameterReplacer.Lookup> initLookups(final ...
    class AbstractLookup (line 78) | public static abstract class AbstractLookup implements FormatParameter...
      method AbstractLookup (line 81) | private AbstractLookup(MavenProject project) {
      method getProperty (line 85) | protected String getProperty(String key) {
    class DefaultUserLookup (line 91) | private static class DefaultUserLookup extends AbstractLookup {
      method DefaultUserLookup (line 99) | private DefaultUserLookup(MavenProject project) {
      method lookup (line 103) | public String lookup() {
    class DefaultNameLookup (line 117) | private static class DefaultNameLookup extends AbstractLookup {
      method DefaultNameLookup (line 119) | private DefaultNameLookup(MavenProject project) {
      method lookup (line 123) | public String lookup() {
    class DefaultTagLookup (line 129) | private static class DefaultTagLookup extends AbstractLookup {
      type Mode (line 144) | private enum Mode {
      method DefaultTagLookup (line 150) | private DefaultTagLookup(MavenProject project, Mode mode, Date now) {
      method lookup (line 156) | public String lookup() {
    method sanitizeName (line 179) | private static String sanitizeName(String name) {

FILE: src/main/java/io/fabric8/maven/docker/util/JibServiceUtil.java
  class JibServiceUtil (line 50) | public class JibServiceUtil {
    method JibServiceUtil (line 62) | private JibServiceUtil() {
    method buildContainer (line 76) | public static void buildContainer(JibContainerBuilder jibContainerBuil...
    method containerFromImageConfiguration (line 100) | public static JibContainerBuilder containerFromImageConfiguration(
    method getFullImageName (line 107) | public static String getFullImageName(ImageConfiguration imageConfigur...
    method jibPush (line 125) | public static void jibPush(ImageConfiguration imageConfiguration, Cred...
    method pushImage (line 143) | private static void pushImage(TarImage baseImage, String targetImageNa...
    method populateContainerBuilderFromImageConfiguration (line 161) | private static JibContainerBuilder populateContainerBuilderFromImageCo...
    method getAllImageTags (line 196) | static Set<String> getAllImageTags(List<String> tags, String imageName) {
    method submitPushToJib (line 205) | private static void submitPushToJib(TarImage baseImage, RegistryImage ...
    meth
Condensed preview — 463 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,128K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 3138,
    "preview": "version: 2\n\njobs:\n  # Build Website\n  doc:\n    working_directory: ~/fabric8io/dmp-docs\n    docker:\n    - image: circleci"
  },
  {
    "path": ".codecov.yml",
    "chars": 195,
    "preview": "coverage:\n  range: \"45...90\"\n  precision: 2\n  round: down\n  status:\n    project:\n      default:\n        threshold: \"2%\"\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 470,
    "preview": "<!-- Please fill out the following information to help us in analyzing the issue, but feel free to skip it if you don't "
  },
  {
    "path": ".gitignore",
    "chars": 76,
    "preview": ".idea/\n.DS_Store\ntarget/\n*.iml\n.classpath\n.project\n.settings\n.*.md.html\ntemp"
  },
  {
    "path": ".mvn/jvm.config",
    "chars": 76,
    "preview": "-Xmx2048m -Djava.awt.headless=true -XX:+UseG1GC -XX:+UseStringDeduplication\n"
  },
  {
    "path": ".mvn/maven.config",
    "chars": 27,
    "preview": "-Dmaven.artifact.threads=8\n"
  },
  {
    "path": ".mvn/wrapper/maven-wrapper.properties",
    "chars": 110,
    "preview": "distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4301,
    "preview": "## Contributing \n\nYou want to contribute ? Awesome ! We **♥︎♥︎ LOVE ♥︎♥︎** contributions ;-)\n\nHere some things to check "
  },
  {
    "path": "Jenkinsfile",
    "chars": 387,
    "preview": "#!/usr/bin/groovy\n@Library('github.com/fabric8io/fabric8-pipeline-library@master')\ndef dummy\nmavenNode {\n  dockerNode {\n"
  },
  {
    "path": "LICENSE",
    "chars": 11323,
    "preview": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licens"
  },
  {
    "path": "README.md",
    "chars": 4194,
    "preview": "# docker-maven-plugin\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/docker-maven-plugin"
  },
  {
    "path": "doc/changelog.md",
    "chars": 59513,
    "preview": "# ChangeLog\n\n* **0.34.0** (2020-09-13)\n  - Support `ARG` in `FROM` ([#859](https://github.com/fabric8io/docker-maven-plu"
  },
  {
    "path": "doc/ci-docs.sh",
    "chars": 517,
    "preview": "echo ===========================================\necho Deploying docker-maven-plugin documentation\necho ================="
  },
  {
    "path": "doc/examples.md",
    "chars": 3097,
    "preview": "## Examples\n\nThis plugin comes with some commented examples in the `samples/` directory:\n\n### Jolokia Demo\n\n[data-joloki"
  },
  {
    "path": "doc/howto-release.md",
    "chars": 1374,
    "preview": "\n# Release instructions\n\n## Preparation\n\n* Increase version numbers in the poms below samples/ (they are not automatical"
  },
  {
    "path": "doc/integration-tests.md",
    "chars": 445,
    "preview": "\n# Integration Testing\n\nThis document currently only holds some ideas of how and what to integration test this plugin\n\n#"
  },
  {
    "path": "doc/intro.md",
    "chars": 8551,
    "preview": "## Introduction \n\nIt focuses on two major aspects:\n\n* **Building** and **pushing** Docker images which contain build art"
  },
  {
    "path": "doc/migration-0.9.x.md",
    "chars": 5834,
    "preview": "## Migration Guide\n\nThis recipes gives you some hint and help for migrating from the old\n(0.9.x) configuration syntax to"
  },
  {
    "path": "doc/readme-0.9.x.md",
    "chars": 27684,
    "preview": "# docker-maven-plugin 0.9.x\n\n[![endorse](http://api.coderwall.com/fabric8io/endorsecount.png)](http://coderwall.com/fabr"
  },
  {
    "path": "doc/update_issue_links.sh",
    "chars": 128,
    "preview": "#!/bin/sh\nperl -i -p -e 's|\\(\\s*#(\\d+)\\s*\\)|([#$1](https://github.com/fabric8io/docker-maven-plugin/issues/$1))|g' chang"
  },
  {
    "path": "it/README.md",
    "chars": 558,
    "preview": "## docker-maven-plugin examples\n\nThis directory holds various examples for the usage of the docker-maven\nplugin. It can "
  },
  {
    "path": "it/docker-compose/pom.xml",
    "chars": 3492,
    "preview": "<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xsi:sc"
  },
  {
    "path": "it/docker-compose/src/main/docker/Dockerfile",
    "chars": 59,
    "preview": "FROM busybox:latest\nVOLUME [\"/maven\"]\nCOPY j4p.war /maven/\n"
  },
  {
    "path": "it/docker-compose/src/main/docker/docker-compose.yml",
    "chars": 352,
    "preview": "version: \"2\"\nservices:\n  jolokia-war:\n    labels:\n      \"dmp.type\": \"example\"\n      \"dmp.value\": \"100$$\"\n  tomcat:\n    i"
  },
  {
    "path": "it/dockerfile/README.md",
    "chars": 560,
    "preview": "## d-m-p sample using a Dockerfile\n\nThis example shows how to use docker-maven-plugin together with a Dockerfile. \nIt is"
  },
  {
    "path": "it/dockerfile/pom.xml",
    "chars": 2798,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/dockerfile/src/main/docker/Dockerfile",
    "chars": 369,
    "preview": "# Sample Dockerfile for use with the Docker file mode\nFROM ${base}\n\nENV SAMPLE_BUILD_MODE=dockerfile\nLABEL PROJECT_NAME="
  },
  {
    "path": "it/dockerfile/src/main/docker/welcome.txt",
    "chars": 15,
    "preview": "Hello World !!!"
  },
  {
    "path": "it/dockerfile/src/main/java/io/fabric8/dmp/samples/dockerfile/HelloWorldServlet.java",
    "chars": 776,
    "preview": "package io.fabric8.dmp.samples.dockerfile;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.nio.charset.Cha"
  },
  {
    "path": "it/dockerfile/src/main/webapp/WEB-INF/web.xml",
    "chars": 596,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app version=\"3.0\" xmlns=\"http://java.sun.com/xml/ns/javaee\"\nxmlns:xsi=\"http:"
  },
  {
    "path": "it/dockerignore/.maven-dockerignore",
    "chars": 10,
    "preview": "target/**\n"
  },
  {
    "path": "it/dockerignore/Dockerfile",
    "chars": 13,
    "preview": "FROM busybox\n"
  },
  {
    "path": "it/dockerignore/pom.xml",
    "chars": 1675,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/healthcheck/pom.xml",
    "chars": 4286,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/helloworld/pom.xml",
    "chars": 3344,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/helloworld/src/main/java/io/fabric8/dmp/sample/helloworld/App.java",
    "chars": 183,
    "preview": "package io.fabric8.dmp.sample.helloworld;\n\n/**\n * Hello world!\n */\npublic class App {\n    public static void main(String"
  },
  {
    "path": "it/helloworld/src/test/java/io/fabric8/dmp/sample/helloworld/AppTest.java",
    "chars": 659,
    "preview": "package io.fabric8.dmp.sample.helloworld;\n\nimport junit.framework.Test;\nimport junit.framework.TestCase;\nimport junit.fr"
  },
  {
    "path": "it/log/pom.xml",
    "chars": 2150,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/net/pom.xml",
    "chars": 4382,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/pom.xml",
    "chars": 2203,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/properties/pom.xml",
    "chars": 2251,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/run-java/Dockerfile",
    "chars": 280,
    "preview": "FROM openjdk:jre\n\nADD target/${project.build.finalName}.jar /opt/hello-world.jar\nADD target/docker-extra/run-java/run-ja"
  },
  {
    "path": "it/run-java/pom.xml",
    "chars": 1294,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "it/run-java/src/main/java/HelloWorld.java",
    "chars": 125,
    "preview": "public class HelloWorld {\n\n    public static void main(String[] args) {\n        System.out.println(\"Hello world !\");\n   "
  },
  {
    "path": "it/smallest/Dockerfile",
    "chars": 45,
    "preview": "FROM busybox\nCMD [\"echo\", \"Hello\", \"world!\"]\n"
  },
  {
    "path": "it/smallest/pom.xml",
    "chars": 780,
    "preview": "<project>\n  <modelVersion>4.0.0</modelVersion>\n\n  <parent>\n    <groupId>io.fabric8.dmp.samples</groupId>\n    <artifactId"
  },
  {
    "path": "it/test.xml",
    "chars": 497,
    "preview": "<c xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xmlns=\"http://fabric8.io/docker-maven-plugin/test2\"\n  "
  },
  {
    "path": "it/volume/pom.xml",
    "chars": 1717,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "it/zero-config/Dockerfile",
    "chars": 259,
    "preview": "FROM openjdk:jre\n\n#RUN VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exe"
  },
  {
    "path": "it/zero-config/pom.xml",
    "chars": 1183,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "it/zero-config/src/main/java/HelloWorld.java",
    "chars": 125,
    "preview": "public class HelloWorld {\n\n    public static void main(String[] args) {\n        System.out.println(\"Hello world !\");\n   "
  },
  {
    "path": "mvnw",
    "chars": 6509,
    "preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
  },
  {
    "path": "pom.xml",
    "chars": 18988,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocat"
  },
  {
    "path": "release.groovy",
    "chars": 764,
    "preview": "#!/usr/bin/groovy\ndef repo(){\n return 'fabric8io/docker-maven-plugin'\n}\n\ndef stage(){\n  return stageProject{\n    project"
  },
  {
    "path": "release.sh",
    "chars": 9372,
    "preview": "#!/bin/bash\n\n# ======================================\n# Release script for docker-maven-plugin\n# ======================="
  },
  {
    "path": "samples/README.md",
    "chars": 558,
    "preview": "## docker-maven-plugin examples\n\nThis directory holds various examples for the usage of the docker-maven\nplugin. It can "
  },
  {
    "path": "samples/cargo-jolokia/pom.xml",
    "chars": 6394,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLoc"
  },
  {
    "path": "samples/cargo-jolokia/src/test/java/io/fabric8/maven/docker/sample/jolokia/VersionIT.java",
    "chars": 1694,
    "preview": "package io.fabric8.maven.docker.sample.jolokia;\n\nimport com.jayway.restassured.RestAssured;\nimport com.jayway.restassure"
  },
  {
    "path": "samples/custom-net/pom.xml",
    "chars": 3365,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/data-jolokia/pom.xml",
    "chars": 19666,
    "preview": "<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xsi:sc"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/assembly.xml",
    "chars": 1243,
    "preview": "<assembly xmlns=\"http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2\"\n    xmlns:xsi=\"http://www.w3.org/"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/demo/.maven-dockerignore",
    "chars": 34,
    "preview": "# Ignore patterns\nplease-ignore/**"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/demo/Dockerfile",
    "chars": 121,
    "preview": "FROM consol/tomcat-7.0:latest\nARG deploymentDir\nADD jolokia.war /${deploymentDir}/\nADD jolokia-it.war /${deploymentDir}/"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/demo/Dockerfile.test",
    "chars": 99,
    "preview": "FROM consol/tomcat-8.0:latest\nARG deploymentDir\nADD jolokia.war /maven/\nADD jolokia-it.war /maven/\n"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/demo/please-ignore/me.md",
    "chars": 20,
    "preview": "Yep, please ignore !"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/environment.properties",
    "chars": 42,
    "preview": "EXAMPLE_OF_AN_EXTERNAL_VARIABLE=Yes, it is"
  },
  {
    "path": "samples/data-jolokia/src/main/docker/hello.sh",
    "chars": 30,
    "preview": "#!/bin/sh\n\necho \"Hello world\"\n"
  },
  {
    "path": "samples/data-jolokia/src/test/java/io/fabric8/maven/docker/sample/jolokia/VersionIT.java",
    "chars": 1694,
    "preview": "package io.fabric8.maven.docker.sample.jolokia;\n\nimport com.jayway.restassured.RestAssured;\nimport com.jayway.restassure"
  },
  {
    "path": "samples/docker-compose/pom.xml",
    "chars": 2908,
    "preview": "<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xsi:sc"
  },
  {
    "path": "samples/docker-compose/src/main/docker/Dockerfile",
    "chars": 59,
    "preview": "FROM busybox:latest\nVOLUME [\"/maven\"]\nCOPY j4p.war /maven/\n"
  },
  {
    "path": "samples/docker-compose/src/main/docker/docker-compose.yml",
    "chars": 352,
    "preview": "version: \"2\"\nservices:\n  jolokia-war:\n    labels:\n      \"dmp.type\": \"example\"\n      \"dmp.value\": \"100$$\"\n  tomcat:\n    i"
  },
  {
    "path": "samples/dockerfile/README.md",
    "chars": 560,
    "preview": "## d-m-p sample using a Dockerfile\n\nThis example shows how to use docker-maven-plugin together with a Dockerfile. \nIt is"
  },
  {
    "path": "samples/dockerfile/pom.xml",
    "chars": 2214,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/dockerfile/src/main/docker/Dockerfile",
    "chars": 369,
    "preview": "# Sample Dockerfile for use with the Docker file mode\nFROM ${base}\n\nENV SAMPLE_BUILD_MODE=dockerfile\nLABEL PROJECT_NAME="
  },
  {
    "path": "samples/dockerfile/src/main/docker/welcome.txt",
    "chars": 15,
    "preview": "Hello World !!!"
  },
  {
    "path": "samples/dockerfile/src/main/java/io/fabric8/dmp/samples/dockerfile/HelloWorldServlet.java",
    "chars": 776,
    "preview": "package io.fabric8.dmp.samples.dockerfile;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.nio.charset.Cha"
  },
  {
    "path": "samples/dockerfile/src/main/webapp/WEB-INF/web.xml",
    "chars": 596,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app version=\"3.0\" xmlns=\"http://java.sun.com/xml/ns/javaee\"\nxmlns:xsi=\"http:"
  },
  {
    "path": "samples/dockerignore/.maven-dockerignore",
    "chars": 10,
    "preview": "target/**\n"
  },
  {
    "path": "samples/dockerignore/Dockerfile",
    "chars": 13,
    "preview": "FROM busybox\n"
  },
  {
    "path": "samples/dockerignore/pom.xml",
    "chars": 1272,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/healthcheck/pom.xml",
    "chars": 4528,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/helloworld/pom.xml",
    "chars": 2968,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/helloworld/src/main/java/io/fabric8/dmp/sample/helloworld/App.java",
    "chars": 183,
    "preview": "package io.fabric8.dmp.sample.helloworld;\n\n/**\n * Hello world!\n */\npublic class App {\n    public static void main(String"
  },
  {
    "path": "samples/helloworld/src/test/java/io/fabric8/dmp/sample/helloworld/AppTest.java",
    "chars": 659,
    "preview": "package io.fabric8.dmp.sample.helloworld;\n\nimport junit.framework.Test;\nimport junit.framework.TestCase;\nimport junit.fr"
  },
  {
    "path": "samples/log/pom.xml",
    "chars": 1913,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/multi-wait/pom.xml",
    "chars": 3012,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/net/pom.xml",
    "chars": 4382,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/pom.xml",
    "chars": 2378,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/properties/pom.xml",
    "chars": 1848,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/run-java/Dockerfile",
    "chars": 280,
    "preview": "FROM openjdk:jre\n\nADD target/${project.build.finalName}.jar /opt/hello-world.jar\nADD target/docker-extra/run-java/run-ja"
  },
  {
    "path": "samples/run-java/pom.xml",
    "chars": 1061,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "samples/run-java/src/main/java/HelloWorld.java",
    "chars": 125,
    "preview": "public class HelloWorld {\n\n    public static void main(String[] args) {\n        System.out.println(\"Hello world !\");\n   "
  },
  {
    "path": "samples/smallest/Dockerfile",
    "chars": 45,
    "preview": "FROM busybox\nCMD [\"echo\", \"Hello\", \"world!\"]\n"
  },
  {
    "path": "samples/smallest/pom.xml",
    "chars": 543,
    "preview": "<project>\n  <modelVersion>4.0.0</modelVersion>\n\n  <parent>\n    <groupId>io.fabric8.dmp.samples</groupId>\n    <artifactId"
  },
  {
    "path": "samples/spring-boot-with-jib/README.md",
    "chars": 23182,
    "preview": "# Spring Boot Sample with JIB Build Mode\n\nThis is also a Spring Boot application to demonstrate how Docker Maven Plugin "
  },
  {
    "path": "samples/spring-boot-with-jib/pom.xml",
    "chars": 6527,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://mave"
  },
  {
    "path": "samples/spring-boot-with-jib/src/main/java/io/fabric8/maven/sample/springboot/jib/Application.java",
    "chars": 331,
    "preview": "package io.fabric8.maven.sample.springboot.jib;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springfra"
  },
  {
    "path": "samples/spring-boot-with-jib/src/main/java/io/fabric8/maven/sample/springboot/jib/HelloController.java",
    "chars": 359,
    "preview": "package io.fabric8.maven.sample.springboot.jib;\n\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport o"
  },
  {
    "path": "samples/spring-boot-with-jib/static/testFile.txt",
    "chars": 20,
    "preview": "I should be present\n"
  },
  {
    "path": "samples/test.xml",
    "chars": 497,
    "preview": "<c xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xmlns=\"http://fabric8.io/docker-maven-plugin/test2\"\n  "
  },
  {
    "path": "samples/volume/pom.xml",
    "chars": 1717,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:sc"
  },
  {
    "path": "samples/zero-config/Dockerfile",
    "chars": 158,
    "preview": "FROM openjdk:jre\n\nARG jar_file=target/dmp-sample-zero-config.jar\n\nARG FOO=${}\nADD $jar_file /tmp/zero-config.jar\nCMD jav"
  },
  {
    "path": "samples/zero-config/pom.xml",
    "chars": 1117,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "samples/zero-config/src/main/java/HelloWorld.java",
    "chars": 125,
    "preview": "public class HelloWorld {\n\n    public static void main(String[] args) {\n        System.out.println(\"Hello world !\");\n   "
  },
  {
    "path": "src/main/asciidoc/inc/_authentication.adoc",
    "chars": 9258,
    "preview": "\n[[authentication]]\n= Authentication\n\nWhen pulling (via the `autoPull` mode of `{plugin}:start`) or pushing image, it\nmi"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-build.adoc",
    "chars": 674,
    "preview": "\n[[docker:build]]\n== *docker:build*\n\nThis goal will build all images which have a `<build>` configuration section, or, i"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-logs.adoc",
    "chars": 1319,
    "preview": "\n[[docker:logs]]\n== *docker:logs*\n\nWith this goal it is possible to print out the logs of containers\nstarted from images"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-push.adoc",
    "chars": 103,
    "preview": "\n[[docker:push]]\n== *docker:push*\n\ninclude::push/_overview.adoc[]\n\ninclude::push/_configuration.adoc[]\n"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-remove.adoc",
    "chars": 1915,
    "preview": "\n[[docker:remove]]\n== *docker:remove*\n\nThis goal can be used to clean up images. By default all images with a build conf"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-save.adoc",
    "chars": 2001,
    "preview": "\n[[docker:save]]\n== *docker:save*\n\nThe `{plugin}:save` target saves an image defined in the build configuration to a loc"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-source.adoc",
    "chars": 1822,
    "preview": "\n[[docker:source]]\n== *docker:source*\n\nThe `{plugin}:source` target can be used to attach a docker build archive contain"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-start.adoc",
    "chars": 746,
    "preview": "\n[[docker:start]]\n== *docker:start*\n\ninclude::start/_overview.adoc[]\n\n[[start-configuration]]\n=== Configuration\n\ninclude"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-stop.adoc",
    "chars": 3310,
    "preview": "\n[[docker:stop]]\n== *docker:stop*\n\nStops and removes a docker container. This goal stops every container started with `<"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-tag.adoc",
    "chars": 1518,
    "preview": "[[docker:tag]]\n== *docker:tag*\n\nThe `{plugin}:tag` tags an image so that it becomes part of a repository. You can use it"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-volume-create.adoc",
    "chars": 1788,
    "preview": "\n[[docker:volume-create]]\n== *docker:volume-create*\n\nThis goals creates one or more standalone https://docs.docker.com/e"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-volume-remove.adoc",
    "chars": 734,
    "preview": "[[docker:volume-remove]]\n== *docker:volume-remove*\n\nThis goals is the counterpart to <<docker:volume-create>> and remove"
  },
  {
    "path": "src/main/asciidoc/inc/_docker-watch.adoc",
    "chars": 131,
    "preview": "\n[[docker:watch]]\n== *docker:watch*\n\ninclude::watch/_overview.adoc[]\n\n[[watch-configuration]]\ninclude::watch/_configurat"
  },
  {
    "path": "src/main/asciidoc/inc/_external-configuration.adoc",
    "chars": 1126,
    "preview": "\n[[external-configuration]]\n= External Configuration\n\nFor special configuration needs, there is the possibility to get t"
  },
  {
    "path": "src/main/asciidoc/inc/_global-configuration.adoc",
    "chars": 10955,
    "preview": "\n[[global-configuration]]\n= Global configuration\n\nGlobal configuration parameters specify overall behavior like the\nconn"
  },
  {
    "path": "src/main/asciidoc/inc/_goals.adoc",
    "chars": 1273,
    "preview": "= Maven Goals\n\nThis plugin supports the following goals which are explained in detail\nin the next sections.\n\n.Plugin Goa"
  },
  {
    "path": "src/main/asciidoc/inc/_image-configuration.adoc",
    "chars": 1035,
    "preview": "[[image-configuration]]\n= Image configuration\n\nThe plugin's configuration is centered around _images_. These are\nspecifi"
  },
  {
    "path": "src/main/asciidoc/inc/_implicit-properties.adoc",
    "chars": 1269,
    "preview": "= Implicit properties\n\nThere are some implicit configurations in docker maven plugin that are not so straightforward. Th"
  },
  {
    "path": "src/main/asciidoc/inc/_installation.adoc",
    "chars": 3064,
    "preview": "= Installation\n\nThis plugin is available from Maven central and can be connected to\npre- and post-integration phase as s"
  },
  {
    "path": "src/main/asciidoc/inc/_introduction.adoc",
    "chars": 7339,
    "preview": "\n= Introduction\n\nThis is a Maven plugin for managing Docker images and containers. It focuses on two major aspects for a"
  },
  {
    "path": "src/main/asciidoc/inc/_links.adoc",
    "chars": 749,
    "preview": "\n= Further reading\n\n* Examples:\n** https://github.com/fabric8io/docker-maven-plugin/blob/master/doc/examples.md[Examples"
  },
  {
    "path": "src/main/asciidoc/inc/_registry.adoc",
    "chars": 3401,
    "preview": "\n[[registry]]\n= Registry handling\n\nDocker uses registries to store images. The registry is typically\nspecified as part o"
  },
  {
    "path": "src/main/asciidoc/inc/build/_assembly.adoc",
    "chars": 10103,
    "preview": "\nThe `<assembly>` element within `<build>` is has an XML struture and defines how build artifacts and other files can en"
  },
  {
    "path": "src/main/asciidoc/inc/build/_buildargs.adoc",
    "chars": 980,
    "preview": "[[property-buildargs]]\nAs described in section <<build-configuration,Configuration>> for external Dockerfiles https://do"
  },
  {
    "path": "src/main/asciidoc/inc/build/_configuration.adoc",
    "chars": 9599,
    "preview": "\nAll build relevant configuration is contained in the `<build>` section\nof an image configuration. The following configu"
  },
  {
    "path": "src/main/asciidoc/inc/build/_healthcheck.adoc",
    "chars": 2315,
    "preview": "\nHealthchecks has been introduced since Docker 1.12 and are a way to tell Docker how to test a container to check that i"
  },
  {
    "path": "src/main/asciidoc/inc/build/_overview.adoc",
    "chars": 9326,
    "preview": "\n[[build-overview]]\nThere are two different modes how images can be built:\n\n.Inline plugin configuration\nWith an inline "
  },
  {
    "path": "src/main/asciidoc/inc/external/_docker_compose.adoc",
    "chars": 3294,
    "preview": "\nThis plugin supports also configuration via a  https://docs.docker.com/compose/[docker-compose] file, especially for ru"
  },
  {
    "path": "src/main/asciidoc/inc/external/_property_configuration.adoc",
    "chars": 23480,
    "preview": "\nFor simple needs the image configuration can be completely defined via\nMaven properties which are defined outside of th"
  },
  {
    "path": "src/main/asciidoc/inc/image/_configuration.adoc",
    "chars": 2005,
    "preview": "\n[[config-image]]\n.Image Configuration\n[cols=\"1,5\"]\n|===\n| Element | Description\n\n| *name*\n| Each `<image>` configuratio"
  },
  {
    "path": "src/main/asciidoc/inc/image/_example.adoc",
    "chars": 236,
    "preview": "\n.Example\n[source,xml]\n----\n<configuration>\n  ....\n  <images>\n    <image>\n      <name>%g/docker-demo:0.1</name>\n      <a"
  },
  {
    "path": "src/main/asciidoc/inc/image/_example_imagesMap.adoc",
    "chars": 214,
    "preview": "\n.Example\n[source,xml]\n----\n<configuration>\n  ....\n  <imagesMap>\n    <service>\n      <name>%g/docker-demo:0.1</name>\n   "
  },
  {
    "path": "src/main/asciidoc/inc/image/_naming.adoc",
    "chars": 6434,
    "preview": "[[image-name]]\n## Image Names\nWhen specifying the image name in the configuration with the `<name>` field you can use se"
  },
  {
    "path": "src/main/asciidoc/inc/misc/_env.adoc",
    "chars": 1077,
    "preview": "\n\nWhen creating a container one or more environment variables can be set via configuration with the `env` parameter\n\n.Ex"
  },
  {
    "path": "src/main/asciidoc/inc/misc/_startup.adoc",
    "chars": 1899,
    "preview": "\n\nUsing `entrypoint` and `cmd` it is possible to specify the https://docs.docker.com/reference/builder/#entrypoint[entry"
  },
  {
    "path": "src/main/asciidoc/inc/push/_configuration.adoc",
    "chars": 638,
    "preview": "\n\n.Push options\n[cols=\"1,5,1\"]\n|===\n| Element | Description | Property\n\n| *skipPush*\n| If set to `true` the plugin won't"
  },
  {
    "path": "src/main/asciidoc/inc/push/_overview.adoc",
    "chars": 844,
    "preview": "\nThis goal uploads images to the registry which have a `<build>` configuration section. The images to push can be restri"
  },
  {
    "path": "src/main/asciidoc/inc/start/_configuration.adoc",
    "chars": 7589,
    "preview": "In addition to the <<global-configuration>>, this goal supports the following global configuration options.\n\n.Start opti"
  },
  {
    "path": "src/main/asciidoc/inc/start/_depends-on.adoc",
    "chars": 1193,
    "preview": "Custom networks do not provide a mechanism like `<links>` to express strong links between containers. They are normally "
  },
  {
    "path": "src/main/asciidoc/inc/start/_links.adoc",
    "chars": 2058,
    "preview": "\nThe `<links>` configuration contains a list of containers that should\nbe linked to this container according to https://"
  },
  {
    "path": "src/main/asciidoc/inc/start/_logging.adoc",
    "chars": 2947,
    "preview": "\nWhen running containers the standard output and standard error of the container can be printed out. Several options are"
  },
  {
    "path": "src/main/asciidoc/inc/start/_network.adoc",
    "chars": 2155,
    "preview": "\nThe `<network>` element in the <<start-configuration, <run> >> configuration section can be used to configure the netwo"
  },
  {
    "path": "src/main/asciidoc/inc/start/_overview.adoc",
    "chars": 1663,
    "preview": "\n[[start-overview]]\nThis goal creates and starts docker containers. This goal evaluates the configuration's `<run>` sect"
  },
  {
    "path": "src/main/asciidoc/inc/start/_port-mapping.adoc",
    "chars": 4086,
    "preview": "\nThe `<ports>` configuration contains a list of port mappings. Whitespace is trimmed from each element and empty element"
  },
  {
    "path": "src/main/asciidoc/inc/start/_restart.adoc",
    "chars": 829,
    "preview": "\nSpecify the behavior to apply when the container exits. These values can be specified withing a `<restartPolicy>` secti"
  },
  {
    "path": "src/main/asciidoc/inc/start/_volumes.adoc",
    "chars": 2842,
    "preview": "\nA container can bind (or \"mount\") volumes from various source when starting up: Either from a directory of the host sys"
  },
  {
    "path": "src/main/asciidoc/inc/start/_wait.adoc",
    "chars": 4781,
    "preview": "\nWhile starting a container is it possible to block the execution until\nsome condition is met. These conditions can be s"
  },
  {
    "path": "src/main/asciidoc/inc/watch/_configuration.adoc",
    "chars": 4598,
    "preview": "\n\nThis maven goal can be configured with the following top-level parameters:\n\n.Watch configuration\n[cols=\"1,5,1\"]\n|===\n|"
  },
  {
    "path": "src/main/asciidoc/inc/watch/_overview.adoc",
    "chars": 3202,
    "preview": "\nWhen developing and testing applications you will often have to rebuild Docker images and restart containers. Typing `{"
  },
  {
    "path": "src/main/asciidoc/index.adoc",
    "chars": 1100,
    "preview": "= fabric8io/docker-maven-plugin\nRoland Huß;\n:revnumber: {version}\n:revdate: {localdate}\n:toc: macro\n:toclevels: 3\n:toc-t"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/AbstractBuildSupportMojo.java",
    "chars": 2206,
    "preview": "package io.fabric8.maven.docker;\n\nimport java.util.List;\nimport java.util.Map;\n\nimport io.fabric8.maven.docker.service.B"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/AbstractDockerMojo.java",
    "chars": 18822,
    "preview": "package io.fabric8.maven.docker;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.util.Date;\nimport java.ut"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/BuildMojo.java",
    "chars": 8602,
    "preview": "package io.fabric8.maven.docker;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.InputStreamReader;\nimp"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/LogsMojo.java",
    "chars": 2962,
    "preview": "package io.fabric8.maven.docker;\n\nimport io.fabric8.maven.docker.access.DockerAccessException;\nimport io.fabric8.maven.d"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/PushMojo.java",
    "chars": 2329,
    "preview": "package io.fabric8.maven.docker;\n\nimport io.fabric8.maven.docker.access.DockerAccessException;\nimport io.fabric8.maven.d"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/RemoveMojo.java",
    "chars": 7094,
    "preview": "package io.fabric8.maven.docker;/*\n *\n * Copyright 2014 Roland Huss\n *\n * Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/RunMojo.java",
    "chars": 1103,
    "preview": "package io.fabric8.maven.docker;\n/*\n *\n * Copyright 2016 Roland Huss\n *\n * Licensed under the Apache License, Version 2."
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/SaveMojo.java",
    "chars": 6296,
    "preview": "package io.fabric8.maven.docker;\n\nimport java.io.File;\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.ut"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/SourceMojo.java",
    "chars": 4809,
    "preview": "package io.fabric8.maven.docker;\n/*\n *\n * Copyright 2015 Roland Huss\n *\n * Licensed under the Apache License, Version 2."
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/StartMojo.java",
    "chars": 17347,
    "preview": "package io.fabric8.maven.docker;\n\n/*\n * Copyright 2009-2014 Roland Huss Licensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/StopMojo.java",
    "chars": 12438,
    "preview": "package io.fabric8.maven.docker;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.Collection;\ni"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/TagMojo.java",
    "chars": 1288,
    "preview": "package io.fabric8.maven.docker;\n\nimport io.fabric8.maven.docker.access.DockerAccessException;\nimport io.fabric8.maven.d"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/VolumeCreateMojo.java",
    "chars": 1200,
    "preview": "package io.fabric8.maven.docker;\n\n\nimport io.fabric8.maven.docker.access.DockerAccessException;\nimport io.fabric8.maven."
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/VolumeRemoveMojo.java",
    "chars": 1176,
    "preview": "package io.fabric8.maven.docker;\n\n\nimport io.fabric8.maven.docker.access.DockerAccessException;\nimport io.fabric8.maven."
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/WatchMojo.java",
    "chars": 4111,
    "preview": "package io.fabric8.maven.docker;/*\n *\n * Copyright 2014 Roland Huss\n *\n * Licensed under the Apache License, Version 2.0"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/AuthConfig.java",
    "chars": 4428,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonObject;\n\nimport org.apache.commons.codec.binary.Base"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/BuildOptions.java",
    "chars": 2640,
    "preview": "package io.fabric8.maven.docker.access;/*\n *\n * Copyright 2015-2016 Red Hat, Inc.\n *\n * Licensed under the Apache Licens"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ContainerCreateConfig.java",
    "chars": 6444,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\n\nimport or"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ContainerHostConfig.java",
    "chars": 8081,
    "preview": "package io.fabric8.maven.docker.access;\r\n\r\nimport com.google.gson.JsonArray;\r\nimport com.google.gson.JsonObject;\r\n\r\nimpo"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ContainerNetworkingConfig.java",
    "chars": 1044,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonObject;\n\nimport io.fabric8.maven.docker.config.Netwo"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/DockerAccess.java",
    "chars": 13036,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.io.File;\nimport java.util.List;\n\nimport io.fabric8.maven.docker.acc"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/DockerAccessException.java",
    "chars": 1030,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.io.IOException;\n\n/**\n * Exception thrown if access to the docker ho"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/DockerConnectionDetector.java",
    "chars": 6843,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.io.*;\nimport java.util.*;\n\nimport io.fabric8.maven.docker.access.ut"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/DockerMachine.java",
    "chars": 7355,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.io.*;\nimport java.util.*;\n\nimport io.fabric8.maven.docker.access.ut"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ExecException.java",
    "chars": 814,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.util.Arrays;\n\nimport io.fabric8.maven.docker.model.ContainerDetails"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/KeyStoreUtil.java",
    "chars": 3513,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport java.io.*;\nimport java.security.*;\nimport java.security.cert.Certificate"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/NetworkCreateConfig.java",
    "chars": 615,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonObject;\n\npublic class NetworkCreateConfig {\n    fina"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/PortMapping.java",
    "chars": 15672,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\n\nimport ja"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/UrlBuilder.java",
    "chars": 8347,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\n\nimport ja"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/VolumeCreateConfig.java",
    "chars": 1617,
    "preview": "package io.fabric8.maven.docker.access;\n\nimport com.google.gson.JsonObject;\n\nimport java.util.Map;\n\nimport io.fabric8.ma"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/chunked/BuildJsonResponseHandler.java",
    "chars": 1645,
    "preview": "package io.fabric8.maven.docker.access.chunked;\n\nimport com.google.gson.JsonObject;\n\nimport io.fabric8.maven.docker.acce"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/chunked/EntityStreamReaderUtil.java",
    "chars": 1209,
    "preview": "package io.fabric8.maven.docker.access.chunked;\n\nimport com.google.gson.JsonElement;\nimport com.google.gson.JsonObject;\n"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/chunked/PullOrPushResponseJsonHandler.java",
    "chars": 2009,
    "preview": "package io.fabric8.maven.docker.access.chunked;\n\nimport com.google.gson.JsonObject;\n\nimport io.fabric8.maven.docker.acce"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ecr/AwsSigner4.java",
    "chars": 6262,
    "preview": "package io.fabric8.maven.docker.access.ecr;\n\nimport java.net.URI;\nimport java.nio.charset.StandardCharsets;\nimport java."
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ecr/AwsSigner4Request.java",
    "chars": 6746,
    "preview": "package io.fabric8.maven.docker.access.ecr;\n\nimport java.io.IOException;\nimport java.lang.reflect.UndeclaredThrowableExc"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/ecr/EcrExtendedAuth.java",
    "chars": 5116,
    "preview": "package io.fabric8.maven.docker.access.ecr;\n\nimport java.io.IOException;\nimport java.io.InputStreamReader;\nimport java.i"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/ApacheHttpClientDelegate.java",
    "chars": 7949,
    "preview": "package io.fabric8.maven.docker.access.hc;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.nio.charset.Cha"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/DockerAccessWithHcClient.java",
    "chars": 34328,
    "preview": "package io.fabric8.maven.docker.access.hc;\n\nimport static java.net.HttpURLConnection.*;\n\nimport java.io.File;\nimport jav"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/http/HttpClientBuilder.java",
    "chars": 4835,
    "preview": "package io.fabric8.maven.docker.access.hc.http;/*\n *\n * Copyright 2014 Roland Huss\n *\n * Licensed under the Apache Licen"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/http/HttpRequestException.java",
    "chars": 217,
    "preview": "package io.fabric8.maven.docker.access.hc.http;\n\nimport java.io.IOException;\n\npublic class HttpRequestException extends "
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixConnectionSocketFactory.java",
    "chars": 757,
    "preview": "package io.fabric8.maven.docker.access.hc.unix;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.net.Socket"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixSocket.java",
    "chars": 8480,
    "preview": "package io.fabric8.maven.docker.access.hc.unix;\n\nimport java.io.FilterInputStream;\nimport java.io.FilterOutputStream;\nim"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/unix/UnixSocketClientBuilder.java",
    "chars": 682,
    "preview": "package io.fabric8.maven.docker.access.hc.unix;\n\nimport io.fabric8.maven.docker.access.hc.util.AbstractNativeClientBuild"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/util/AbstractNativeClientBuilder.java",
    "chars": 3453,
    "preview": "package io.fabric8.maven.docker.access.hc.util;\n/*\n *\n * Copyright 2016 Roland Huss\n *\n * Licensed under the Apache Lice"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/util/AbstractNativeSocketFactory.java",
    "chars": 1607,
    "preview": "package io.fabric8.maven.docker.access.hc.util;\n/*\n *\n * Copyright 2016 Roland Huss\n *\n * Licensed under the Apache Lice"
  },
  {
    "path": "src/main/java/io/fabric8/maven/docker/access/hc/util/ClientBuilder.java",
    "chars": 1315,
    "preview": "package io.fabric8.maven.docker.access.hc.util;\n/*\n *\n * Copyright 2016 Roland Huss\n *\n * Licensed under the Apache Lice"
  }
]

// ... and 263 more files (download for full content)

About this extraction

This page contains the full source code of the rhuss/docker-maven-plugin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 463 files (1.9 MB), approximately 460.0k tokens, and a symbol index with 3593 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!