Skip to main content

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;
}

...
}