
org.browsermob.proxy.guice.ConfigModule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of browsermob-proxy Show documentation
Show all versions of browsermob-proxy Show documentation
A programmatic HTTP/S designed for performance and functional testing
package org.browsermob.proxy.guice;
import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.Module;
import joptsimple.ArgumentAcceptingOptionSpec;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import java.io.IOException;
import static java.util.Arrays.asList;
public class ConfigModule implements Module {
private String[] args;
public ConfigModule(String[] args) {
this.args = args;
}
@Override
public void configure(Binder binder) {
OptionParser parser = new OptionParser();
ArgumentAcceptingOptionSpec portSpec =
parser.accepts("port", "The port to listen on")
.withOptionalArg().ofType(Integer.class).defaultsTo(8080);
parser.acceptsAll(asList("help", "?"), "This help text");
OptionSet options = parser.parse(args);
if (options.has("?")) {
try {
parser.printHelpOn(System.out);
} catch (IOException e) {
// should never happen, but...
e.printStackTrace();
}
return;
}
binder.bind(Key.get(Integer.class, new NamedImpl("port"))).toInstance(portSpec.value(options));
}
}