Extending JettyMicroservice
This example shows how the JettyMicroservice
class can be extended to implement lifecycle listener methods or override existing methods.
We'll create a new class com.foo.MyJettyMicroservice
.
/**
* Sample subclass of a JettyMicroservice that provides customized behavior.
*/
public class MyJettyMicroservice extends JettyMicroservice {
public static void main(String[] args) throws Exception {
JettyMicroservice.Builder builder = JettyMicroservice.create();
new MyJettyMicroservice(builder).start().join();
}
public MyJettyMicroservice(JettyMicroservice.Builder builder) throws Exception {
super(builder);
}
// Customized code here.
Optionally, you can extend the JettyMicroservice.Builder class as well:
public class MyJettyMicroservice.Builder extends JettyMicroservice.Builder {
int extraField;
/**
* Constructor (required).
*/
protected MyJettyMicroservice.Builder() {}
/**
* Copy constructor (required).
*
* @param copyFrom The builder to copy settings from.
*/
protected MyJettyMicroservice.Builder(MyJettyMicroservice.Builder copyFrom) {
super(copyFrom);
}
// Additional setters
public MyJettyMicroservice.Builder extraField(int extraField) {
this.extraField = extraField;
return this;
}
// Overridden methods
@Override /* JettyMicroservice.Builder */
public MyJettyMicroservice.Builder copy() {
return new MyJettyMicroservice.Builder(this);
}
@Override /* JettyMicroservice.Builder */
public MyJettyMicroservice.Builder ports(int...ports) {
super.ports(ports);
return this;
}
@Override /* JettyMicroservice.Builder */
public MyJettyMicroservice.Builder servlet(Class cls) throws InstantiationException, IllegalAccessException {
super.servlet(cls);
return this;
}
...
}