The amaya-server implementation is based on jetty-server.
To install it, you will need:
- Java 17+
- Maven/Gradle
- Full implementation of amaya-server
- Convenient interfaces for http request handling
- Full access to jetty configuration
dependencies {
implementation group: 'io.github.amayaframework', name: 'amaya-jetty', version: '3.3.3-12.1.1'
// For alpn support (for ssl + http2, optionally)
implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-server', version: '12.1.1'
implementation group: 'org.eclipse.jetty', name: 'jetty-alpn-java-server', version: '12.1.1'
// For http2 support (optionally)
implementation group: 'org.eclipse.jetty.http2', name: 'jetty-http2-server', version: '12.1.1'
// For http3 support (optionally)
implementation group: 'org.eclipse.jetty.http3', name: 'jetty-http3-server', version: '12.1.1'
implementation group: 'org.eclipse.jetty.quic', name: 'jetty-quic-quiche-server', version: '12.1.1'
runtimeOnly group: 'org.eclipse.jetty.quic', name: 'jetty-quic-quiche-jna', version: '12.1.1'
// For websocket support (optionally)
implementation group: 'org.eclipse.jetty.ee10.websocket', name: 'jetty-ee10-websocket-jakarta-server', version: '12.1.1'
}
<dependencies>
<dependency>
<groupId>io.github.amayaframework</groupId>
<artifactId>amaya-jetty</artifactId>
<version>3.3.3-12.1.1</version>
</dependency>
<!-- For ALPN support (for SSL + HTTP/2, optionally) -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-server</artifactId>
<version>12.1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-java-server</artifactId>
<version>12.1.1</version>
</dependency>
<!-- For HTTP/2 support (optionally) -->
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>jetty-http2-server</artifactId>
<version>12.1.1</version>
</dependency>
<!-- For HTTP/3 support (optionally) -->
<dependency>
<groupId>org.eclipse.jetty.http3</groupId>
<artifactId>jetty-http3-server</artifactId>
<version>12.1.1</version>
</dependency>
<!-- For Websocket support (optionally) -->
<dependency>
<groupId>org.eclipse.jetty.ee10.websocket</groupId>
<artifactId>jetty-ee10-websocket-jakarta-server</artifactId>
<version>12.1.1</version>
</dependency>
import io.github.amayaframework.jetty.JettyServerFactory;
public class Main {
public static void main(String[] args) throws Throwable {
var factory = new JettyServerFactory();
var server = factory.create();
server.handler(UniRunnable1.of(ctx -> {
var req = ctx.request();
var rsp = ctx.response();
rsp.writer().write("Hello, " + req.queryParam("user"));
}));
server.bind(8080);
server.start();
}
}
import io.github.amayaframework.jetty.JettyFactory;
import io.github.amayaframework.jetty.JettyServerFactory;
import io.github.amayaframework.options.OptionSet;
import org.eclipse.jetty.server.Server;
public class Main {
public static void main(String[] args) throws Throwable {
var factory = new JettyServerFactory(v -> new Server());
var server = factory.create();
server.handler(UniRunnable1.of(ctx -> {
var req = ctx.request();
var rsp = ctx.response();
rsp.writer().write("Hello, " + req.queryParam("user"));
}));
server.bind(8080);
server.start();
}
}
- Gradle - Dependency management
- Jetty 12 - Http server implementation
- jfunc - Basic functional interfaces
- amaya-context - Universal http context api
- amaya-server - Universal server api
- RomanQed - Main work
See also the list of contributors who participated in this project.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details