package apollo.modules; import apollo.command_line.OptionalArgs; import apollo.maven.MavenDeployOption; import apollo.upload.MavenUploader; import apollo.upload.Uploader; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; import com.google.inject.name.Names; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.DefaultInvoker; import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.Invoker; import java.util.List; import java.util.StringJoiner; public class MavenModule extends AbstractModule { @Override protected void configure() { bind(Uploader.class).to(MavenUploader.class); bind(new TypeLiteral<List<MavenDeployOption>>(){}).toProvider(MavenCommandsProvider.class); bind(Invoker.class).to(DefaultInvoker.class).asEagerSingleton(); bind(InvocationRequest.class).toProvider(InvocationRequestProvider.class); bind(String.class).annotatedWith(Names.named("deploy-start-command")).toInstance("deploy:deploy-file -q "); bind(OptionalArgs.class).asEagerSingleton(); } }