Class ProtocExecutor
java.lang.Object
io.github.ascopes.protobufmavenplugin.protoc.ProtocExecutor
@Description("Executes protoc in a subprocess, intercepting any outputs")
@Named
public final class ProtocExecutor
extends Object
Executor for
protoc
commands.- Author:
- Ashley Scopes
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final HostSystem
private static final org.slf4j.Logger
private final TemporarySpace
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
applyDescriptorFileProtocTargetArguments
(ArgumentFileBuilder builder, DescriptorFileProtocTarget target) private void
applyDescriptorSourceArgument
(ArgumentFileBuilder builder, String file) private void
applyImportPathArgument
(ArgumentFileBuilder builder, Path path) private void
applyLanguageProtocTargetArguments
(ArgumentFileBuilder builder, LanguageProtocTarget target) private void
applyPluginProtocTargetArguments
(ArgumentFileBuilder builder, PluginProtocTarget target) private void
applyProtocTargetArguments
(ArgumentFileBuilder builder, ProtocTarget target) private void
applyProtoSourceFileArgument
(ArgumentFileBuilder builder, Path file) private ArgumentFileBuilder
createArgumentFileBuilder
(ProtocInvocation invocation) private String
createDescriptorInputArgument
(ProtocInvocation invocation) boolean
invoke
(ProtocInvocation invocation) private boolean
runProcess
(ProcessBuilder procBuilder) private Path
writeArgumentFile
(ArgumentFileBuilder argumentFileBuilder)
-
Field Details
-
log
private static final org.slf4j.Logger log -
hostSystem
-
temporarySpace
-
-
Constructor Details
-
ProtocExecutor
-
-
Method Details
-
invoke
- Throws:
IOException
-
createArgumentFileBuilder
-
applyProtocTargetArguments
-
applyDescriptorFileProtocTargetArguments
private void applyDescriptorFileProtocTargetArguments(ArgumentFileBuilder builder, DescriptorFileProtocTarget target) -
applyLanguageProtocTargetArguments
private void applyLanguageProtocTargetArguments(ArgumentFileBuilder builder, LanguageProtocTarget target) -
applyPluginProtocTargetArguments
private void applyPluginProtocTargetArguments(ArgumentFileBuilder builder, PluginProtocTarget target) -
applyImportPathArgument
-
applyProtoSourceFileArgument
-
applyDescriptorSourceArgument
-
createDescriptorInputArgument
-
writeArgumentFile
- Throws:
IOException
-
runProcess
- Throws:
InterruptedException
IOException
-