This example shows how the {@link oaj.microservice.jetty.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 {@link oaj.microservice.jetty.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<? extends RestServlet> cls) throws InstantiationException, IllegalAccessException {
| super.servlet(cls);
| return this;
| }
|
| ...
| }