diff --git a/gradle.properties b/gradle.properties index 9fb44dc..7649515 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.xbib name = net-http -version = 3.0.5 +version = 3.1.0 org.gradle.warning.mode = ALL diff --git a/net-http-server-application-config/src/main/java/org/xbib/net/http/server/application/config/ConfigApplicationModule.java b/net-http-server-application-config/src/main/java/org/xbib/net/http/server/application/config/ConfigApplicationModule.java index f40a6c2..007a8c4 100644 --- a/net-http-server-application-config/src/main/java/org/xbib/net/http/server/application/config/ConfigApplicationModule.java +++ b/net-http-server-application-config/src/main/java/org/xbib/net/http/server/application/config/ConfigApplicationModule.java @@ -6,11 +6,11 @@ import org.xbib.config.ConfigLoader; import org.xbib.config.ConfigLogger; import org.xbib.config.ConfigParams; import org.xbib.config.SystemConfigLogger; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.BaseApplicationModule; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.application.BaseApplicationModule; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.service.HttpService; import org.xbib.settings.Settings; public class ConfigApplicationModule extends BaseApplicationModule { diff --git a/net-http-server-application-database/src/main/java/org/xbib/net/http/server/application/database/DatabaseApplicationModule.java b/net-http-server-application-database/src/main/java/org/xbib/net/http/server/application/database/DatabaseApplicationModule.java index d09e5db..ec11d5a 100644 --- a/net-http-server-application-database/src/main/java/org/xbib/net/http/server/application/database/DatabaseApplicationModule.java +++ b/net-http-server-application-database/src/main/java/org/xbib/net/http/server/application/database/DatabaseApplicationModule.java @@ -4,11 +4,11 @@ import org.xbib.jdbc.connection.pool.PoolConfig; import org.xbib.jdbc.connection.pool.PoolDataSource; import org.xbib.jdbc.query.DatabaseProvider; import org.xbib.jdbc.query.Flavor; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.BaseApplicationModule; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.application.BaseApplicationModule; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.service.HttpService; import org.xbib.settings.Settings; import javax.sql.DataSource; diff --git a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/Bootstrap.java b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/Bootstrap.java index 849df19..1b247e5 100644 --- a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/Bootstrap.java +++ b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/Bootstrap.java @@ -14,10 +14,10 @@ import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpHeaderValues; import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.HttpVersion; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpSecurityDomain; -import org.xbib.net.http.server.HttpSecurityDomain; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.domain.BaseHttpSecurityDomain; +import org.xbib.net.http.server.domain.HttpSecurityDomain; +import org.xbib.net.http.server.service.HttpService; import org.xbib.net.http.server.auth.BasicAuthenticationHandler; import org.xbib.net.http.server.auth.FormAuthenticationHandler; import org.xbib.net.http.server.ldap.LdapContextFactory; @@ -25,7 +25,7 @@ import org.xbib.net.http.server.ldap.LdapGroupMapping; import org.xbib.net.http.server.ldap.LdapRealm; import org.xbib.net.http.server.ldap.LdapUserMapping; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.buffer.NettyDataBufferFactory; import org.xbib.net.http.server.netty.secure.HttpsAddress; diff --git a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplication.java b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplication.java index 9cf92b2..5a316bd 100644 --- a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplication.java +++ b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplication.java @@ -4,7 +4,7 @@ import java.nio.file.Paths; import java.time.Duration; import org.xbib.net.http.cookie.SameSite; -import org.xbib.net.http.server.BaseApplication; +import org.xbib.net.http.server.application.BaseApplication; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; import org.xbib.net.http.server.persist.Codec; diff --git a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplicationBuilder.java b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplicationBuilder.java index 16f4ae4..3d48460 100644 --- a/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplicationBuilder.java +++ b/net-http-server-application-web/src/main/java/org/xbib/net/http/server/application/web/WebApplicationBuilder.java @@ -1,6 +1,6 @@ package org.xbib.net.http.server.application.web; -import org.xbib.net.http.server.BaseApplicationBuilder; +import org.xbib.net.http.server.application.BaseApplicationBuilder; import org.xbib.settings.Settings; diff --git a/net-http-server-application-web/src/main/resources/META-INF/services/org.xbib.net.http.server.ApplicationModule b/net-http-server-application-web/src/main/resources/META-INF/services/org.xbib.net.http.server.application.ApplicationModule similarity index 100% rename from net-http-server-application-web/src/main/resources/META-INF/services/org.xbib.net.http.server.ApplicationModule rename to net-http-server-application-web/src/main/resources/META-INF/services/org.xbib.net.http.server.application.ApplicationModule diff --git a/net-http-server-netty-secure/src/main/java/org/xbib/net/http/server/netty/secure/NettyHttpsServerConfig.java b/net-http-server-netty-secure/src/main/java/org/xbib/net/http/server/netty/secure/NettyHttpsServerConfig.java index 0acdd0d..67d4c4d 100644 --- a/net-http-server-netty-secure/src/main/java/org/xbib/net/http/server/netty/secure/NettyHttpsServerConfig.java +++ b/net-http-server-netty-secure/src/main/java/org/xbib/net/http/server/netty/secure/NettyHttpsServerConfig.java @@ -9,7 +9,7 @@ import java.util.Optional; import java.util.ServiceLoader; import org.xbib.net.http.HttpAddress; import org.xbib.net.http.server.netty.NettyHttpServerConfig; -import org.xbib.net.http.server.HttpDomain; +import org.xbib.net.http.server.domain.HttpDomain; import java.util.Collection; diff --git a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerMultiRequestLoadTest.java b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerMultiRequestLoadTest.java index 6cc6055..91daf11 100644 --- a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerMultiRequestLoadTest.java +++ b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerMultiRequestLoadTest.java @@ -17,9 +17,9 @@ import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; import org.xbib.net.http.client.netty.secure.NettyHttpsClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.secure.HttpsAddress; import org.xbib.net.http.server.netty.secure.HttpsRequest; diff --git a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerTest.java b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerTest.java index 7cdce68..c8f52b0 100644 --- a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerTest.java +++ b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttps2ServerTest.java @@ -17,9 +17,9 @@ import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; import org.xbib.net.http.client.netty.secure.NettyHttpsClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.secure.HttpsAddress; import org.xbib.net.http.server.netty.secure.HttpsRequest; diff --git a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerMultiRequestLoadTest.java b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerMultiRequestLoadTest.java index 195464d..8dded73 100644 --- a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerMultiRequestLoadTest.java +++ b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerMultiRequestLoadTest.java @@ -13,9 +13,9 @@ import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; import org.xbib.net.http.client.netty.secure.NettyHttpsClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.secure.HttpsAddress; import org.xbib.net.http.server.netty.secure.HttpsRequest; diff --git a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerTest.java b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerTest.java index 38a16a0..9ae2877 100644 --- a/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerTest.java +++ b/net-http-server-netty-secure/src/test/java/org/xbib/net/http/server/netty/secure/test/NettyHttpsServerTest.java @@ -20,14 +20,14 @@ import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; import org.xbib.net.http.client.netty.secure.NettyHttpsClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.secure.HttpsAddress; import org.xbib.net.http.server.netty.secure.HttpsRequest; import org.xbib.net.http.server.netty.secure.NettyHttpsServerConfig; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import java.nio.charset.StandardCharsets; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpRequestBuilder.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpRequestBuilder.java index 24f1449..46f0909 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpRequestBuilder.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpRequestBuilder.java @@ -9,7 +9,6 @@ import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; import org.xbib.net.http.server.BaseHttpRequestBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.CharBuffer; @@ -116,7 +115,7 @@ public class HttpRequestBuilder extends BaseHttpRequestBuilder { } @Override - public void close() throws IOException { + public void release() { if (fullHttpRequest != null) { logger.log(Level.FINER, "releasing retained netty request"); fullHttpRequest.release(); diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponse.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponse.java index 0e676b1..8399b8b 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponse.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponse.java @@ -3,13 +3,9 @@ package org.xbib.net.http.server.netty; import org.xbib.net.http.server.BaseHttpResponse; import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; public class HttpResponse extends BaseHttpResponse { - private static final Logger logger = Logger.getLogger(HttpResponse.class.getName()); - private final HttpResponseBuilder builder; protected HttpResponse(HttpResponseBuilder builder) { @@ -23,7 +19,7 @@ public class HttpResponse extends BaseHttpResponse { @Override public void close() throws IOException { - builder.close(); + builder.release(); } @Override diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponseBuilder.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponseBuilder.java index b6f8ec2..b7e242f 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponseBuilder.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/HttpResponseBuilder.java @@ -129,8 +129,9 @@ public class HttpResponseBuilder extends BaseHttpResponseBuilder { } @Override - public void close() throws IOException { - if (ctx.channel().isOpen()) { + public void release() { + super.release(); + if (ctx != null && ctx.channel().isOpen()) { logger.log(Level.FINER, "closing netty channel " + ctx.channel()); ctx.close(); } @@ -185,7 +186,6 @@ public class HttpResponseBuilder extends BaseHttpResponseBuilder { } HttpHeaders trailingHeaders = new DefaultHttpHeaders(); super.trailingHeaders.entries().forEach(e -> trailingHeaders.add(e.getKey(), e.getValue())); - // retain Netty byteBuf because FullHttpResponse will be released in writeAndFlush() FullHttpResponse fullHttpResponse = new DefaultFullHttpResponse(HttpVersion.valueOf(version.text()), responseStatus, byteBuf.retain(), headers, trailingHeaders); if (!ctx.channel().isWritable()) { @@ -204,7 +204,7 @@ public class HttpResponseBuilder extends BaseHttpResponseBuilder { private void internalWrite(FileChannel fileChannel, int bufferSize, boolean keepAlive) { if (!ctx.channel().isWritable()) { - logger.log(Level.WARNING, "we have a problem, the channel " + ctx.channel() + " is not writable"); + logger.log(Level.WARNING, "channel not writeable: " + ctx.channel()); } HttpResponseStatus responseStatus = HttpResponseStatus.valueOf(status.code()); DefaultHttpResponse rsp = new DefaultHttpResponse(HttpVersion.HTTP_1_1, responseStatus); diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServer.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServer.java index 3294017..70c89b0 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServer.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServer.java @@ -15,7 +15,7 @@ import org.xbib.net.NetworkClass; import org.xbib.net.NetworkUtils; import org.xbib.net.SocketConfig; import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServer; import java.io.IOException; diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServerBuilder.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServerBuilder.java index 3190fb0..b5f1cd5 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServerBuilder.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/NettyHttpServerBuilder.java @@ -5,7 +5,7 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServerBuilder; import org.xbib.net.util.NamedThreadFactory; diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBuffer.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBuffer.java index 84e7860..c044835 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBuffer.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBuffer.java @@ -12,6 +12,8 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufInputStream; import io.netty.buffer.ByteBufOutputStream; import io.netty.buffer.ByteBufUtil; +import java.util.logging.Level; +import java.util.logging.Logger; import org.xbib.net.buffer.DataBuffer; import org.xbib.net.buffer.PooledDataBuffer; @@ -21,11 +23,12 @@ import org.xbib.net.buffer.PooledDataBuffer; */ public class NettyDataBuffer implements PooledDataBuffer { + private static final Logger logger = Logger.getLogger(NettyDataBuffer.class.getName()); + private final ByteBuf byteBuf; private final NettyDataBufferFactory dataBufferFactory; - /** * Create a new {@code NettyDataBuffer} based on the given {@code ByteBuff}. * @param byteBuf the buffer to base this buffer on @@ -37,18 +40,17 @@ public class NettyDataBuffer implements PooledDataBuffer { this.dataBufferFactory = dataBufferFactory; } - /** * Directly exposes the native {@code ByteBuf} that this buffer is based on. * @return the wrapped byte buffer */ public ByteBuf getNativeBuffer() { - return this.byteBuf; + return byteBuf; } @Override public NettyDataBufferFactory factory() { - return this.dataBufferFactory; + return dataBufferFactory; } @Override @@ -57,11 +59,11 @@ public class NettyDataBuffer implements PooledDataBuffer { if (fromIndex < 0) { fromIndex = 0; } - else if (fromIndex >= this.byteBuf.writerIndex()) { + else if (fromIndex >= byteBuf.writerIndex()) { return -1; } - int length = this.byteBuf.writerIndex() - fromIndex; - return this.byteBuf.forEachByte(fromIndex, length, predicate.negate()::test); + int length = byteBuf.writerIndex() - fromIndex; + return byteBuf.forEachByte(fromIndex, length, predicate.negate()::test); } @Override @@ -70,96 +72,96 @@ public class NettyDataBuffer implements PooledDataBuffer { if (fromIndex < 0) { return -1; } - fromIndex = Math.min(fromIndex, this.byteBuf.writerIndex() - 1); - return this.byteBuf.forEachByteDesc(0, fromIndex + 1, predicate.negate()::test); + fromIndex = Math.min(fromIndex, byteBuf.writerIndex() - 1); + return byteBuf.forEachByteDesc(0, fromIndex + 1, predicate.negate()::test); } @Override public int readableByteCount() { - return this.byteBuf.readableBytes(); + return byteBuf.readableBytes(); } @Override public int writableByteCount() { - return this.byteBuf.writableBytes(); + return byteBuf.writableBytes(); } @Override public int readPosition() { - return this.byteBuf.readerIndex(); + return byteBuf.readerIndex(); } @Override public NettyDataBuffer readPosition(int readPosition) { - this.byteBuf.readerIndex(readPosition); + byteBuf.readerIndex(readPosition); return this; } @Override public int writePosition() { - return this.byteBuf.writerIndex(); + return byteBuf.writerIndex(); } @Override public NettyDataBuffer writePosition(int writePosition) { - this.byteBuf.writerIndex(writePosition); + byteBuf.writerIndex(writePosition); return this; } @Override public byte getByte(int index) { - return this.byteBuf.getByte(index); + return byteBuf.getByte(index); } @Override public int capacity() { - return this.byteBuf.capacity(); + return byteBuf.capacity(); } @Override public NettyDataBuffer capacity(int capacity) { - this.byteBuf.capacity(capacity); + byteBuf.capacity(capacity); return this; } @Override public DataBuffer ensureCapacity(int capacity) { - this.byteBuf.ensureWritable(capacity); + byteBuf.ensureWritable(capacity); return this; } @Override public byte read() { - return this.byteBuf.readByte(); + return byteBuf.readByte(); } @Override public NettyDataBuffer read(byte[] destination) { - this.byteBuf.readBytes(destination); + byteBuf.readBytes(destination); return this; } @Override public NettyDataBuffer read(byte[] destination, int offset, int length) { - this.byteBuf.readBytes(destination, offset, length); + byteBuf.readBytes(destination, offset, length); return this; } @Override public NettyDataBuffer write(byte b) { - this.byteBuf.writeByte(b); + byteBuf.writeByte(b); return this; } @Override public NettyDataBuffer write(byte[] source) { - this.byteBuf.writeBytes(source); + byteBuf.writeBytes(source); return this; } @Override public NettyDataBuffer write(byte[] source, int offset, int length) { - this.byteBuf.writeBytes(source, offset, length); + byteBuf.writeBytes(source, offset, length); return this; } @@ -177,7 +179,6 @@ public class NettyDataBuffer implements PooledDataBuffer { ByteBuffer[] byteBuffers = new ByteBuffer[buffers.length]; for (int i = 0; i < buffers.length; i++) { byteBuffers[i] = buffers[i].asByteBuffer(); - } write(byteBuffers); } @@ -196,9 +197,9 @@ public class NettyDataBuffer implements PooledDataBuffer { @Override public NettyDataBuffer write(ByteBuffer... buffers) { - if (buffers != null && buffers.length > 0) { + if (buffers != null) { for (ByteBuffer buffer : buffers) { - this.byteBuf.writeBytes(buffer); + byteBuf.writeBytes(buffer); } } return this; @@ -211,9 +212,9 @@ public class NettyDataBuffer implements PooledDataBuffer { * @return this buffer */ public NettyDataBuffer write(ByteBuf... byteBufs) { - if (byteBufs != null && byteBufs.length > 0) { + if (byteBufs != null) { for (ByteBuf byteBuf : byteBufs) { - this.byteBuf.writeBytes(byteBuf); + byteBuf.writeBytes(byteBuf); } } return this; @@ -224,10 +225,10 @@ public class NettyDataBuffer implements PooledDataBuffer { Objects.requireNonNull(charSequence, "CharSequence must not be null"); Objects.requireNonNull(charset, "Charset must not be null"); if (StandardCharsets.UTF_8.equals(charset)) { - ByteBufUtil.writeUtf8(this.byteBuf, charSequence); + ByteBufUtil.writeUtf8(byteBuf, charSequence); } else if (StandardCharsets.US_ASCII.equals(charset)) { - ByteBufUtil.writeAscii(this.byteBuf, charSequence); + ByteBufUtil.writeAscii(byteBuf, charSequence); } else { return PooledDataBuffer.super.write(charSequence, charset); @@ -237,88 +238,88 @@ public class NettyDataBuffer implements PooledDataBuffer { @Override public NettyDataBuffer slice(int index, int length) { - ByteBuf slice = this.byteBuf.slice(index, length); - return new NettyDataBuffer(slice, this.dataBufferFactory); + ByteBuf slice = byteBuf.slice(index, length); + return new NettyDataBuffer(slice, dataBufferFactory); } @Override public NettyDataBuffer retainedSlice(int index, int length) { - ByteBuf slice = this.byteBuf.retainedSlice(index, length); - return new NettyDataBuffer(slice, this.dataBufferFactory); + ByteBuf slice = byteBuf.retainedSlice(index, length); + return new NettyDataBuffer(slice, dataBufferFactory); } @Override public ByteBuffer asByteBuffer() { - return this.byteBuf.nioBuffer(); + return byteBuf.nioBuffer(); } @Override public ByteBuffer asByteBuffer(int index, int length) { - return this.byteBuf.nioBuffer(index, length); + return byteBuf.nioBuffer(index, length); } @Override public InputStream asInputStream() { - return new ByteBufInputStream(this.byteBuf); + return new ByteBufInputStream(byteBuf); } @Override public InputStream asInputStream(boolean releaseOnClose) { - return new ByteBufInputStream(this.byteBuf, releaseOnClose); + return new ByteBufInputStream(byteBuf, releaseOnClose); } @Override public OutputStream asOutputStream() { - return new ByteBufOutputStream(this.byteBuf); + return new ByteBufOutputStream(byteBuf); } @Override public String toString(Charset charset) { Objects.requireNonNull(charset, "Charset must not be null"); - return this.byteBuf.toString(charset); + return byteBuf.toString(charset); } @Override public String toString(int index, int length, Charset charset) { Objects.requireNonNull(charset, "Charset must not be null"); - return this.byteBuf.toString(index, length, charset); + return byteBuf.toString(index, length, charset); } @Override public boolean isAllocated() { - return this.byteBuf.refCnt() > 0; + return byteBuf.refCnt() > 0; } @Override public PooledDataBuffer retain() { - return new NettyDataBuffer(this.byteBuf.retain(), this.dataBufferFactory); + return new NettyDataBuffer(byteBuf.retain(), dataBufferFactory); } @Override public PooledDataBuffer touch(Object hint) { - this.byteBuf.touch(hint); + byteBuf.touch(hint); return this; } @Override - public boolean release() { - return this.byteBuf.release(); + public void release() { + boolean deallocated = byteBuf.release(); + logger.log(Level.FINEST, "released " + byteBuf + " deallocated = " + deallocated); } - @Override public boolean equals(Object other) { return (this == other || (other instanceof NettyDataBuffer && - this.byteBuf.equals(((NettyDataBuffer) other).byteBuf))); + byteBuf.equals(((NettyDataBuffer) other).byteBuf))); } @Override public int hashCode() { - return this.byteBuf.hashCode(); + return byteBuf.hashCode(); } @Override public String toString() { - return this.byteBuf.toString(); + return byteBuf.toString(); } } diff --git a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBufferFactory.java b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBufferFactory.java index 01370a8..c28a6c4 100644 --- a/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBufferFactory.java +++ b/net-http-server-netty/src/main/java/org/xbib/net/http/server/netty/buffer/NettyDataBufferFactory.java @@ -44,18 +44,18 @@ public class NettyDataBufferFactory implements DataBufferFactory { * Return the {@code ByteBufAllocator} used by this factory. */ public ByteBufAllocator getByteBufAllocator() { - return this.byteBufAllocator; + return byteBufAllocator; } @Override public NettyDataBuffer allocateBuffer() { - ByteBuf byteBuf = this.byteBufAllocator.buffer(); + ByteBuf byteBuf = byteBufAllocator.buffer(); return new NettyDataBuffer(byteBuf, this); } @Override public NettyDataBuffer allocateBuffer(int initialCapacity) { - ByteBuf byteBuf = this.byteBufAllocator.buffer(initialCapacity); + ByteBuf byteBuf = byteBufAllocator.buffer(initialCapacity); return new NettyDataBuffer(byteBuf, this); } @@ -93,7 +93,7 @@ public class NettyDataBufferFactory implements DataBufferFactory { if (bufferCount == 1) { return dataBuffers.get(0); } - CompositeByteBuf composite = this.byteBufAllocator.compositeBuffer(bufferCount); + CompositeByteBuf composite = byteBufAllocator.compositeBuffer(bufferCount); for (DataBuffer dataBuffer : dataBuffers) { if (!(dataBuffer instanceof NettyDataBuffer)) { throw new IllegalArgumentException("dataBuffer"); @@ -112,8 +112,7 @@ public class NettyDataBufferFactory implements DataBufferFactory { * @return the netty {@code ByteBuf} */ public static ByteBuf toByteBuf(DataBuffer buffer) { - if (buffer instanceof NettyDataBuffer) { - NettyDataBuffer nettyDataBuffer = (NettyDataBuffer) buffer; + if (buffer instanceof NettyDataBuffer nettyDataBuffer) { return nettyDataBuffer.getNativeBuffer(); } else { @@ -123,6 +122,6 @@ public class NettyDataBufferFactory implements DataBufferFactory { @Override public String toString() { - return "NettyDataBufferFactory (" + this.byteBufAllocator + ")"; + return "NettyDataBufferFactory (" + byteBufAllocator + ")"; } } diff --git a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerMultiRequestLoadTest.java b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerMultiRequestLoadTest.java index 71c7792..27fdb6b 100644 --- a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerMultiRequestLoadTest.java +++ b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerMultiRequestLoadTest.java @@ -17,9 +17,9 @@ import org.xbib.net.http.HttpVersion; import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.NettyHttpServerConfig; import org.xbib.net.http.server.route.BaseHttpRouter; diff --git a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerTest.java b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerTest.java index 64b8c98..4c9d135 100644 --- a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerTest.java +++ b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttp2ServerTest.java @@ -16,9 +16,9 @@ import org.xbib.net.http.HttpVersion; import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.NettyHttpServerConfig; import org.xbib.net.http.server.route.BaseHttpRouter; diff --git a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerFailureTest.java b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerFailureTest.java index 94e9cc5..9022f72 100644 --- a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerFailureTest.java +++ b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerFailureTest.java @@ -21,9 +21,9 @@ import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.NettyHttpServerConfig; import org.xbib.net.http.server.route.BaseHttpRouter; diff --git a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerMultiRequestLoadTest.java b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerMultiRequestLoadTest.java index 839d1dd..c5c9e44 100644 --- a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerMultiRequestLoadTest.java +++ b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerMultiRequestLoadTest.java @@ -17,9 +17,9 @@ import org.xbib.net.http.HttpVersion; import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.NettyHttpServerConfig; import org.xbib.net.http.server.route.BaseHttpRouter; diff --git a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerTest.java b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerTest.java index 9b3792a..fc910aa 100644 --- a/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerTest.java +++ b/net-http-server-netty/src/test/java/org/xbib/net/http/netty/test/NettyHttpServerTest.java @@ -13,10 +13,10 @@ import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.client.netty.HttpRequest; import org.xbib.net.http.client.netty.NettyHttpClient; import org.xbib.net.http.client.netty.NettyHttpClientConfig; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.netty.NettyHttpServer; import org.xbib.net.http.server.netty.NettyHttpServerConfig; diff --git a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpRequestBuilder.java b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpRequestBuilder.java index 1d1188e..68adc5d 100644 --- a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpRequestBuilder.java +++ b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpRequestBuilder.java @@ -7,7 +7,6 @@ import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; import org.xbib.net.http.server.BaseHttpRequestBuilder; -import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.nio.ByteBuffer; @@ -99,6 +98,6 @@ public class HttpRequestBuilder extends BaseHttpRequestBuilder { } @Override - public void close() throws IOException { + public void release() { } } diff --git a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpResponseBuilder.java b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpResponseBuilder.java index 8a5bcf4..1ff2a26 100644 --- a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpResponseBuilder.java +++ b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/HttpResponseBuilder.java @@ -116,6 +116,6 @@ public class HttpResponseBuilder extends BaseHttpResponseBuilder { } @Override - public void close() throws IOException { + public void release() { } } diff --git a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServer.java b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServer.java index 18b4081..7f35b2a 100644 --- a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServer.java +++ b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServer.java @@ -5,7 +5,7 @@ import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServer; import java.io.IOException; diff --git a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServerBuilder.java b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServerBuilder.java index 63513f9..1ed80ca 100644 --- a/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServerBuilder.java +++ b/net-http-server-nio/src/main/java/org/xbib/net/http/server/nio/NioHttpServerBuilder.java @@ -1,6 +1,6 @@ package org.xbib.net.http.server.nio; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServerConfig; public class NioHttpServerBuilder { diff --git a/net-http-server-nio/src/test/java/org/xbib/net/http/nio/test/NioHttpServerTest.java b/net-http-server-nio/src/test/java/org/xbib/net/http/nio/test/NioHttpServerTest.java index 396931d..85e1f9a 100644 --- a/net-http-server-nio/src/test/java/org/xbib/net/http/nio/test/NioHttpServerTest.java +++ b/net-http-server-nio/src/test/java/org/xbib/net/http/nio/test/NioHttpServerTest.java @@ -7,9 +7,9 @@ import org.xbib.net.http.HttpAddress; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpHeaderValues; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.route.BaseHttpRouter; import org.xbib.net.http.server.HttpServerConfig; import org.xbib.net.http.server.nio.NioHttpServer; diff --git a/net-http-server-simple-secure/src/test/java/org/xbib/net/http/server/simple/secure/SimpleHttpsServerTest.java b/net-http-server-simple-secure/src/test/java/org/xbib/net/http/server/simple/secure/SimpleHttpsServerTest.java index ad71c4f..5273d0c 100644 --- a/net-http-server-simple-secure/src/test/java/org/xbib/net/http/server/simple/secure/SimpleHttpsServerTest.java +++ b/net-http-server-simple-secure/src/test/java/org/xbib/net/http/server/simple/secure/SimpleHttpsServerTest.java @@ -7,10 +7,10 @@ import org.xbib.net.NetworkClass; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpHeaderValues; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.HttpServerConfig; import org.xbib.net.http.server.simple.SimpleHttpServer; diff --git a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpRequestBuilder.java b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpRequestBuilder.java index 716b32a..6c9a817 100644 --- a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpRequestBuilder.java +++ b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpRequestBuilder.java @@ -7,7 +7,6 @@ import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; import org.xbib.net.http.server.BaseHttpRequestBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; @@ -100,7 +99,6 @@ public class HttpRequestBuilder extends BaseHttpRequestBuilder { } @Override - public void close() throws IOException { - + public void release() { } } diff --git a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpResponseBuilder.java b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpResponseBuilder.java index a3d7ea6..b6fce30 100644 --- a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpResponseBuilder.java +++ b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/HttpResponseBuilder.java @@ -120,7 +120,6 @@ public class HttpResponseBuilder extends BaseHttpResponseBuilder { } @Override - public void close() throws IOException { - + public void release() { } } diff --git a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServer.java b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServer.java index 176ef21..4f4093a 100644 --- a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServer.java +++ b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServer.java @@ -5,7 +5,7 @@ import org.xbib.net.NetworkUtils; import org.xbib.net.SocketConfig; import org.xbib.net.http.HttpAddress; import org.xbib.net.http.HttpHeaderNames; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; diff --git a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServerBuilder.java b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServerBuilder.java index 0102fca..529e259 100644 --- a/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServerBuilder.java +++ b/net-http-server-simple/src/main/java/org/xbib/net/http/server/simple/SimpleHttpServerBuilder.java @@ -1,6 +1,6 @@ package org.xbib.net.http.server.simple; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServerConfig; public class SimpleHttpServerBuilder { diff --git a/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/HttpRouterTest.java b/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/HttpRouterTest.java index 0153606..7da753b 100644 --- a/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/HttpRouterTest.java +++ b/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/HttpRouterTest.java @@ -8,10 +8,10 @@ import org.xbib.net.http.HttpHeaderValues; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.HttpVersion; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.simple.HttpRequest; import org.xbib.net.http.server.simple.HttpRequestBuilder; import org.xbib.net.http.server.simple.HttpResponse; diff --git a/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/SimpleHttpServerTest.java b/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/SimpleHttpServerTest.java index e3acdde..8116eda 100644 --- a/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/SimpleHttpServerTest.java +++ b/net-http-server-simple/src/test/java/org/xbib/net/http/server/simple/test/SimpleHttpServerTest.java @@ -7,10 +7,10 @@ import org.xbib.net.http.HttpAddress; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpHeaderValues; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.BaseApplication; -import org.xbib.net.http.server.BaseHttpDomain; +import org.xbib.net.http.server.application.BaseApplication; +import org.xbib.net.http.server.domain.BaseHttpDomain; import org.xbib.net.http.server.route.BaseHttpRouter; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; import org.xbib.net.http.server.HttpServerConfig; import org.xbib.net.http.server.resource.FileResourceHandler; import org.xbib.net.http.server.simple.SimpleHttpServer; diff --git a/net-http-server/src/main/java/module-info.java b/net-http-server/src/main/java/module-info.java index 1896e13..021e5fb 100644 --- a/net-http-server/src/main/java/module-info.java +++ b/net-http-server/src/main/java/module-info.java @@ -1,12 +1,14 @@ -import org.xbib.net.http.server.ApplicationModule; +import org.xbib.net.http.server.application.ApplicationModule; module org.xbib.net.http.server { uses ApplicationModule; uses org.xbib.config.ConfigLogger; exports org.xbib.net.http.server; + exports org.xbib.net.http.server.application; exports org.xbib.net.http.server.auth; exports org.xbib.net.http.server.cookie; exports org.xbib.net.http.server.decorate; + exports org.xbib.net.http.server.domain; exports org.xbib.net.http.server.handler; exports org.xbib.net.http.server.ldap; exports org.xbib.net.http.server.persist; @@ -16,6 +18,7 @@ module org.xbib.net.http.server { exports org.xbib.net.http.server.resource; exports org.xbib.net.http.server.resource.negotiate; exports org.xbib.net.http.server.route; + exports org.xbib.net.http.server.service; exports org.xbib.net.http.server.session; exports org.xbib.net.http.server.session.file; exports org.xbib.net.http.server.session.memory; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequest.java b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequest.java index f26c1c5..0147708 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequest.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequest.java @@ -1,13 +1,13 @@ package org.xbib.net.http.server; +import java.net.InetSocketAddress; import org.xbib.net.Attributes; import org.xbib.net.Parameter; import org.xbib.net.URL; import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; - -import java.net.InetSocketAddress; +import org.xbib.net.http.server.auth.BaseAttributes; public abstract class BaseHttpRequest implements HttpRequest { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequestBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequestBuilder.java index 7d91f6b..ec8a4fc 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequestBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpRequestBuilder.java @@ -1,5 +1,10 @@ package org.xbib.net.http.server; +import java.net.InetSocketAddress; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.util.Objects; import org.xbib.net.Parameter; import org.xbib.net.URL; import org.xbib.net.URLBuilder; @@ -8,12 +13,6 @@ import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; -import java.net.InetSocketAddress; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.util.Objects; - public abstract class BaseHttpRequestBuilder implements HttpRequestBuilder { protected HttpServerContext httpServerContext; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpResponseBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpResponseBuilder.java index 78a7266..4a293e9 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpResponseBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpResponseBuilder.java @@ -1,18 +1,5 @@ package org.xbib.net.http.server; -import org.xbib.datastructures.common.Pair; -import org.xbib.net.Attributes; -import org.xbib.net.buffer.DataBuffer; -import org.xbib.net.buffer.DataBufferFactory; -import org.xbib.net.buffer.DefaultDataBufferFactory; -import org.xbib.net.http.server.cookie.CookieEncoder; -import org.xbib.net.http.HttpHeaderNames; -import org.xbib.net.http.HttpHeaderValues; -import org.xbib.net.http.HttpHeaders; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.HttpVersion; -import org.xbib.net.http.cookie.Cookie; - import java.io.InputStream; import java.nio.CharBuffer; import java.nio.channels.FileChannel; @@ -24,6 +11,19 @@ import java.util.Locale; import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.datastructures.common.Pair; +import org.xbib.net.Attributes; +import org.xbib.net.buffer.DataBuffer; +import org.xbib.net.buffer.DataBufferFactory; +import org.xbib.net.buffer.DefaultDataBufferFactory; +import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.HttpHeaderValues; +import org.xbib.net.http.HttpHeaders; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.HttpVersion; +import org.xbib.net.http.cookie.Cookie; +import org.xbib.net.http.server.auth.BaseAttributes; +import org.xbib.net.http.server.cookie.CookieEncoder; public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder { @@ -344,6 +344,14 @@ public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder { logger.log(Level.FINER, "done"); } + @Override + public void release() { + if (dataBuffer != null) { + logger.log(Level.FINER, "databuffer release " + dataBuffer); + dataBuffer.release(); + } + } + public void buildHeaders(long contentLength) { this.length = contentLength; if (!headers.containsHeader(HttpHeaderNames.CONTENT_TYPE)) { @@ -373,7 +381,7 @@ public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder { if (httpServerConfig != null && httpServerConfig.getServerName() != null) { headers.add(HttpHeaderNames.SERVER, httpServerConfig.getServerName()); } - logger.log(Level.FINER, "done: status = " + status + " headers = " + headers); + logger.log(Level.FINER, "build headers: status = " + status + " headers = " + headers); } public CharBuffer wrapHeaders() { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServerContext.java b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServerContext.java index 7773efa..81d1231 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServerContext.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServerContext.java @@ -1,19 +1,5 @@ package org.xbib.net.http.server; -import java.util.Map; -import org.xbib.datastructures.json.tiny.Json; -import org.xbib.net.Attributes; -import org.xbib.net.Parameter; -import org.xbib.net.ParameterBuilder; -import org.xbib.net.URL; -import org.xbib.net.buffer.DataBuffer; -import org.xbib.net.http.HttpHeaderNames; -import org.xbib.net.http.HttpHeaderValues; -import org.xbib.net.http.HttpHeaders; -import org.xbib.net.http.HttpMethod; -import org.xbib.net.http.cookie.CookieBox; -import org.xbib.net.http.server.route.HttpRouteResolver; - import java.io.IOException; import java.io.InputStream; import java.nio.CharBuffer; @@ -24,10 +10,26 @@ import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.StandardCharsets; import java.nio.charset.UnsupportedCharsetException; import java.nio.file.Path; +import java.util.Map; import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; - +import org.xbib.datastructures.json.tiny.Json; +import org.xbib.net.Attributes; +import org.xbib.net.Parameter; +import org.xbib.net.ParameterBuilder; +import org.xbib.net.URL; +import org.xbib.net.buffer.DataBuffer; +import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.HttpHeaderValues; +import org.xbib.net.http.HttpHeaders; +import org.xbib.net.http.HttpMethod; +import org.xbib.net.http.cookie.CookieBox; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.auth.BaseAttributes; +import org.xbib.net.http.server.domain.HttpDomain; +import org.xbib.net.http.server.route.HttpRouteResolver; +import org.xbib.net.http.server.service.HttpService; import static org.xbib.net.http.HttpHeaderNames.CONTENT_TYPE; public class BaseHttpServerContext implements HttpServerContext { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpException.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpException.java index 8609357..1ec9b4e 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpException.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpException.java @@ -1,7 +1,7 @@ package org.xbib.net.http.server; -import org.xbib.net.http.HttpResponseStatus; import java.io.IOException; +import org.xbib.net.http.HttpResponseStatus; @SuppressWarnings("serial") public class HttpException extends IOException { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequest.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequest.java index 908c3c4..c33033d 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequest.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequest.java @@ -1,5 +1,7 @@ package org.xbib.net.http.server; +import java.io.InputStream; +import java.nio.ByteBuffer; import org.xbib.net.Attributes; import org.xbib.net.Parameter; import org.xbib.net.Request; @@ -8,9 +10,6 @@ import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; -import java.io.InputStream; -import java.nio.ByteBuffer; - public interface HttpRequest extends Request { URL getServerURL(); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequestBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequestBuilder.java index 6e230a7..a223ff3 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequestBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpRequestBuilder.java @@ -1,5 +1,7 @@ package org.xbib.net.http.server; +import java.nio.CharBuffer; +import java.nio.charset.Charset; import org.xbib.net.Parameter; import org.xbib.net.URL; import org.xbib.net.http.HttpAddress; @@ -7,11 +9,7 @@ import org.xbib.net.http.HttpHeaders; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpVersion; -import java.io.Closeable; -import java.nio.CharBuffer; -import java.nio.charset.Charset; - -public interface HttpRequestBuilder extends Closeable { +public interface HttpRequestBuilder { HttpRequestBuilder setAddress(HttpAddress httpAddress); @@ -49,4 +47,6 @@ public interface HttpRequestBuilder extends Closeable { void done(); + void release(); + } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponse.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponse.java index 9a0cac2..d2ff823 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponse.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponse.java @@ -1,8 +1,7 @@ package org.xbib.net.http.server; -import org.xbib.net.Response; - import java.io.IOException; +import org.xbib.net.Response; public interface HttpResponse extends Response { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponseBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponseBuilder.java index 541c48d..1d75d92 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponseBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpResponseBuilder.java @@ -1,5 +1,9 @@ package org.xbib.net.http.server; +import java.io.InputStream; +import java.nio.CharBuffer; +import java.nio.channels.FileChannel; +import java.nio.charset.Charset; import org.xbib.net.Attributes; import org.xbib.net.buffer.DataBuffer; import org.xbib.net.buffer.DataBufferFactory; @@ -8,13 +12,7 @@ import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.HttpVersion; import org.xbib.net.http.cookie.Cookie; -import java.io.Closeable; -import java.io.InputStream; -import java.nio.CharBuffer; -import java.nio.channels.FileChannel; -import java.nio.charset.Charset; - -public interface HttpResponseBuilder extends Closeable { +public interface HttpResponseBuilder { HttpResponseBuilder setDataBufferFactory(DataBufferFactory dataBufferFactory); @@ -74,4 +72,6 @@ public interface HttpResponseBuilder extends Closeable { void done(); + void release(); + } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServer.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServer.java index 20b66bb..20b3d24 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServer.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServer.java @@ -3,6 +3,7 @@ package org.xbib.net.http.server; import java.io.Closeable; import java.io.IOException; import java.net.BindException; +import org.xbib.net.http.server.application.Application; public interface HttpServer extends Closeable { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerConfig.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerConfig.java index c481cf2..5d85d79 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerConfig.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerConfig.java @@ -1,8 +1,7 @@ package org.xbib.net.http.server; -import org.xbib.net.NetworkClass; - import java.util.Optional; +import org.xbib.net.NetworkClass; public class HttpServerConfig { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerContext.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerContext.java index 75eac5a..a44b4bd 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerContext.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServerContext.java @@ -1,16 +1,16 @@ package org.xbib.net.http.server; -import org.xbib.net.Attributes; -import org.xbib.net.URL; -import org.xbib.net.buffer.DataBuffer; -import org.xbib.net.http.server.route.HttpRouteResolver; - import java.io.IOException; import java.io.InputStream; import java.nio.CharBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.file.Path; +import org.xbib.net.Attributes; +import org.xbib.net.URL; +import org.xbib.net.buffer.DataBuffer; +import org.xbib.net.http.server.route.HttpRouteResolver; +import org.xbib.net.http.server.service.HttpService; public interface HttpServerContext { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServiceBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServiceBuilder.java index 398d49e..f6ebe03 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpServiceBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/HttpServiceBuilder.java @@ -2,6 +2,8 @@ package org.xbib.net.http.server; import org.xbib.net.ParameterDefinition; import org.xbib.net.http.HttpMethod; +import org.xbib.net.http.server.domain.HttpSecurityDomain; +import org.xbib.net.http.server.service.HttpService; public interface HttpServiceBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/Application.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/Application.java similarity index 85% rename from net-http-server/src/main/java/org/xbib/net/http/server/Application.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/Application.java index 8fa1636..70a9553 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/Application.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/Application.java @@ -1,9 +1,4 @@ -package org.xbib.net.http.server; - -import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.session.SessionListener; -import org.xbib.settings.Settings; +package org.xbib.net.http.server.application; import java.io.Closeable; import java.io.IOException; @@ -12,6 +7,14 @@ import java.time.ZoneId; import java.util.Collection; import java.util.Locale; import java.util.Set; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.server.HttpRequestBuilder; +import org.xbib.net.http.server.HttpResponseBuilder; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.domain.HttpDomain; +import org.xbib.net.http.server.session.SessionListener; +import org.xbib.settings.Settings; public interface Application extends SessionListener, Resolver, Closeable { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/ApplicationBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationBuilder.java similarity index 95% rename from net-http-server/src/main/java/org/xbib/net/http/server/ApplicationBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationBuilder.java index 2b75a2d..23de792 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/ApplicationBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationBuilder.java @@ -1,11 +1,10 @@ -package org.xbib.net.http.server; - -import org.xbib.net.http.server.route.HttpRouter; +package org.xbib.net.http.server.application; import java.nio.file.Path; import java.time.ZoneId; import java.util.Locale; import java.util.concurrent.TimeUnit; +import org.xbib.net.http.server.route.HttpRouter; public interface ApplicationBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/ApplicationModule.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationModule.java similarity index 80% rename from net-http-server/src/main/java/org/xbib/net/http/server/ApplicationModule.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationModule.java index ebba3bf..15e1426 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/ApplicationModule.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationModule.java @@ -1,5 +1,8 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.application; +import org.xbib.net.http.server.HttpRequest; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.service.HttpService; import org.xbib.net.http.server.session.Session; import org.xbib.settings.Settings; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationThreadPoolExecutor.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationThreadPoolExecutor.java new file mode 100644 index 0000000..38cac70 --- /dev/null +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/ApplicationThreadPoolExecutor.java @@ -0,0 +1,52 @@ +package org.xbib.net.http.server.application; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Callable; +import java.util.concurrent.RunnableFuture; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class ApplicationThreadPoolExecutor extends ThreadPoolExecutor { + + private final Logger logger = Logger.getLogger(ApplicationThreadPoolExecutor.class.getName()); + + public ApplicationThreadPoolExecutor(int nThreads, int maxQueue, + long keepAliveTime, TimeUnit timeUnit, + ThreadFactory threadFactory) { + super(nThreads, nThreads, keepAliveTime, timeUnit, createBlockingQueue(maxQueue), threadFactory); + logger.log(Level.FINE, "threadpool executor up with nThreads = " + nThreads + + " keepAliveTime = " + keepAliveTime + + " time unit = " + timeUnit + + " maxQueue = " + maxQueue + + " threadFactory = " + threadFactory); + } + + private static BlockingQueue createBlockingQueue(int max) { + return max == Integer.MAX_VALUE ? new SynchronousQueue<>(true) : new ArrayBlockingQueue<>(max); + } + + @Override + protected RunnableFuture newTaskFor(Callable callable) { + return new RouterTask<>(callable); + } + + @Override + protected void afterExecute(Runnable runnable, Throwable terminationCause) { + super.afterExecute(runnable, terminationCause); + logger.log(Level.FINEST, "after execute of " + runnable); + if (terminationCause != null) { + logger.log(Level.SEVERE, terminationCause.getMessage(), terminationCause); + return; + } + if (runnable instanceof RouterTask routerTask) { + RouterCallable routerCallable = (RouterCallable) routerTask.getCallable(); + logger.log(Level.FINEST, "release " + routerCallable); + routerCallable.release(); + } + } +} diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplication.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplication.java similarity index 81% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseApplication.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplication.java index 48e4cfe..63b48fb 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplication.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplication.java @@ -1,22 +1,4 @@ -package org.xbib.net.http.server; - -import org.xbib.net.http.cookie.SameSite; -import org.xbib.net.http.server.route.HttpRouter; -import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.cookie.IncomingCookieHandler; -import org.xbib.net.http.server.cookie.OutgoingCookieHandler; -import org.xbib.net.http.server.persist.Codec; -import org.xbib.net.http.server.session.memory.MemoryPropertiesSessionCodec; -import org.xbib.net.http.server.render.HttpResponseRenderer; -import org.xbib.net.http.server.session.IncomingSessionHandler; -import org.xbib.net.http.server.session.OutgoingSessionHandler; -import org.xbib.net.http.server.session.Session; -import org.xbib.net.http.server.util.BlockingThreadPoolExecutor; -import org.xbib.net.http.server.validate.HttpRequestValidator; -import org.xbib.net.util.NamedThreadFactory; -import org.xbib.net.util.RandomUtil; -import org.xbib.settings.Settings; +package org.xbib.net.http.server.application; import java.io.Closeable; import java.io.IOException; @@ -32,6 +14,29 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.cookie.SameSite; +import org.xbib.net.http.server.BaseHttpServerContext; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpRequestBuilder; +import org.xbib.net.http.server.HttpResponseBuilder; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.cookie.IncomingCookieHandler; +import org.xbib.net.http.server.cookie.OutgoingCookieHandler; +import org.xbib.net.http.server.domain.HttpDomain; +import org.xbib.net.http.server.persist.Codec; +import org.xbib.net.http.server.render.HttpResponseRenderer; +import org.xbib.net.http.server.route.HttpRouter; +import org.xbib.net.http.server.session.IncomingSessionHandler; +import org.xbib.net.http.server.session.OutgoingSessionHandler; +import org.xbib.net.http.server.session.Session; +import org.xbib.net.http.server.session.memory.MemoryPropertiesSessionCodec; +import org.xbib.net.http.server.validate.HttpRequestValidator; +import org.xbib.net.util.NamedThreadFactory; +import org.xbib.net.util.RandomUtil; +import org.xbib.settings.Settings; public class BaseApplication implements Application { @@ -39,7 +44,7 @@ public class BaseApplication implements Application { protected BaseApplicationBuilder builder; - private final BlockingThreadPoolExecutor executor; + private final ApplicationThreadPoolExecutor executor; private final HttpRequestValidator httpRequestValidator; @@ -59,7 +64,7 @@ public class BaseApplication implements Application { protected BaseApplication(BaseApplicationBuilder builder) { this.builder = builder; - this.executor = new BlockingThreadPoolExecutor(builder.blockingThreadCount, builder.blockingThreadQueueCount, + this.executor = new ApplicationThreadPoolExecutor(builder.blockingThreadCount, builder.blockingThreadQueueCount, builder.blockingThreadKeepAliveTime, builder.blockingThreadKeepAliveTimeUnit, new NamedThreadFactory("org-xbib-net-http-server-application")); this.executor.setRejectedExecutionHandler((runnable, threadPoolExecutor) -> @@ -128,9 +133,21 @@ public class BaseApplication implements Application { @Override public void dispatch(HttpRequestBuilder httpRequestBuilder, HttpResponseBuilder httpResponseBuilder) { - Submittable submittable = new Submittable(httpRequestBuilder, httpResponseBuilder); - Future future = executor.submit(submittable); - logger.log(Level.FINE, "dispatching " + future); + RouterCallable routerCallable = new RouterCallable() { + @Override + public Boolean call() { + getRouter().route(httpRequestBuilder, httpResponseBuilder); + return true; + } + + @Override + public void release() { + httpRequestBuilder.release(); + httpResponseBuilder.release(); + } + }; + Future future = executor.submit(routerCallable); + logger.log(Level.FINE, "dispatched " + future); } @Override @@ -139,10 +156,21 @@ public class BaseApplication implements Application { HttpResponseStatus httpResponseStatus) { HttpServerContext httpServerContext = createContext(null, httpRequestBuilder, httpResponseBuilder); httpServerContext.getAttributes().put("responsebuilder", httpResponseBuilder); - StatusSubmittable submittable = new StatusSubmittable(httpRequestBuilder, httpResponseBuilder, - httpResponseStatus, httpServerContext); - Future future = executor.submit(submittable); - logger.log(Level.FINE, "dispatching status " + future); + RouterCallable routerCallable = new RouterCallable() { + @Override + public Boolean call() { + getRouter().routeStatus(httpResponseStatus, httpServerContext); + return true; + } + + @Override + public void release() { + httpRequestBuilder.release(); + httpResponseBuilder.release(); + } + }; + Future future = executor.submit(routerCallable); + logger.log(Level.FINE, "dispatched status " + future); } @Override @@ -331,68 +359,4 @@ public class BaseApplication implements Application { logger.log(Level.INFO, "application closed"); } - private class Submittable implements Runnable, Closeable { - - private final HttpRequestBuilder httpRequestBuilder; - - private final HttpResponseBuilder httpResponseBuilder; - - private Submittable(HttpRequestBuilder httpRequestBuilder, - HttpResponseBuilder httpResponseBuilder) { - this.httpRequestBuilder = httpRequestBuilder; - this.httpResponseBuilder = httpResponseBuilder; - } - - @Override - public void run() { - try { - getRouter().route(httpRequestBuilder, httpResponseBuilder); - } catch (Throwable t) { - logger.log(Level.SEVERE, t.getMessage(), t); - throw t; - } - } - - @Override - public void close() throws IOException { - httpRequestBuilder.close(); - httpResponseBuilder.close(); - } - } - - private class StatusSubmittable implements Runnable, Closeable { - private final HttpRequestBuilder httpRequestBuilder; - - private final HttpResponseBuilder httpResponseBuilder; - - private final HttpResponseStatus httpResponseStatus; - - private final HttpServerContext httpServerContext; - - private StatusSubmittable(HttpRequestBuilder httpRequestBuilder, - HttpResponseBuilder httpResponseBuilder, - HttpResponseStatus httpResponseStatus, - HttpServerContext httpServerContext) { - this.httpRequestBuilder = httpRequestBuilder; - this.httpResponseBuilder = httpResponseBuilder; - this.httpResponseStatus = httpResponseStatus; - this.httpServerContext = httpServerContext; - } - - @Override - public void run() { - try { - getRouter().routeStatus(httpResponseStatus, httpServerContext); - } catch (Throwable t) { - logger.log(Level.SEVERE, t.getMessage(), t); - throw t; - } - } - - @Override - public void close() throws IOException { - httpRequestBuilder.close(); - httpResponseBuilder.close(); - } - } } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationBuilder.java similarity index 99% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationBuilder.java index d88782d..6695c0b 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationBuilder.java @@ -1,11 +1,4 @@ -package org.xbib.net.http.server; - -import org.xbib.config.ConfigLoader; -import org.xbib.config.ConfigLogger; -import org.xbib.config.ConfigParams; -import org.xbib.config.SystemConfigLogger; -import org.xbib.net.http.server.route.HttpRouter; -import org.xbib.settings.Settings; +package org.xbib.net.http.server.application; import java.nio.file.Path; import java.nio.file.Paths; @@ -20,6 +13,12 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.config.ConfigLoader; +import org.xbib.config.ConfigLogger; +import org.xbib.config.ConfigParams; +import org.xbib.config.SystemConfigLogger; +import org.xbib.net.http.server.route.HttpRouter; +import org.xbib.settings.Settings; public class BaseApplicationBuilder implements ApplicationBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationModule.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationModule.java similarity index 88% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationModule.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationModule.java index 4975ba1..79525fb 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseApplicationModule.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/BaseApplicationModule.java @@ -1,5 +1,8 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.application; +import org.xbib.net.http.server.HttpRequest; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.service.HttpService; import org.xbib.net.http.server.session.Session; import org.xbib.settings.Settings; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/Resolver.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/Resolver.java similarity index 58% rename from net-http-server/src/main/java/org/xbib/net/http/server/Resolver.java rename to net-http-server/src/main/java/org/xbib/net/http/server/application/Resolver.java index ae33390..3dcf119 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/Resolver.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/Resolver.java @@ -1,4 +1,4 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.application; public interface Resolver { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterCallable.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterCallable.java new file mode 100644 index 0000000..a357db0 --- /dev/null +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterCallable.java @@ -0,0 +1,7 @@ +package org.xbib.net.http.server.application; + +import java.util.concurrent.Callable; +import org.xbib.net.buffer.Releasable; + +public interface RouterCallable extends Callable, Releasable { +} diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterTask.java b/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterTask.java new file mode 100644 index 0000000..1a90102 --- /dev/null +++ b/net-http-server/src/main/java/org/xbib/net/http/server/application/RouterTask.java @@ -0,0 +1,18 @@ +package org.xbib.net.http.server.application; + +import java.util.concurrent.Callable; +import java.util.concurrent.FutureTask; + +public class RouterTask extends FutureTask { + + private final Callable callable; + + public RouterTask(Callable callable) { + super(callable); + this.callable = callable; + } + + public Callable getCallable() { + return callable; + } +} diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseAttributes.java b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseAttributes.java similarity index 93% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseAttributes.java rename to net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseAttributes.java index 80be175..cc6e919 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseAttributes.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseAttributes.java @@ -1,8 +1,7 @@ -package org.xbib.net.http.server; - -import org.xbib.net.Attributes; +package org.xbib.net.http.server.auth; import java.util.LinkedHashMap; +import org.xbib.net.Attributes; @SuppressWarnings("serial") public class BaseAttributes extends LinkedHashMap implements Attributes { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseUserProfile.java b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseUserProfile.java index b2dbf3f..52342ce 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseUserProfile.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BaseUserProfile.java @@ -1,11 +1,9 @@ package org.xbib.net.http.server.auth; -import org.xbib.net.Attributes; -import org.xbib.net.UserProfile; -import org.xbib.net.http.server.BaseAttributes; - import java.util.ArrayList; import java.util.List; +import org.xbib.net.Attributes; +import org.xbib.net.UserProfile; public class BaseUserProfile implements UserProfile { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/auth/BasicAuthenticationHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BasicAuthenticationHandler.java index a70c510..5ff025c 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/auth/BasicAuthenticationHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/auth/BasicAuthenticationHandler.java @@ -1,5 +1,9 @@ package org.xbib.net.http.server.auth; +import java.io.IOException; +import java.util.Base64; +import java.util.logging.Level; +import java.util.logging.Logger; import org.xbib.net.SecurityRealm; import org.xbib.net.UserProfile; import org.xbib.net.http.HttpHeaderNames; @@ -8,11 +12,6 @@ import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; -import java.util.Base64; -import java.util.logging.Level; -import java.util.logging.Logger; - public class BasicAuthenticationHandler extends LoginAuthenticationHandler implements HttpHandler { private static final Logger logger = Logger.getLogger(BasicAuthenticationHandler.class.getName()); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/auth/LoginAuthenticationHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/auth/LoginAuthenticationHandler.java index e92a189..38f01b6 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/auth/LoginAuthenticationHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/auth/LoginAuthenticationHandler.java @@ -1,6 +1,9 @@ package org.xbib.net.http.server.auth; +import java.io.IOException; import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; import org.xbib.net.Authenticator; import org.xbib.net.GroupsProvider; import org.xbib.net.Parameter; @@ -12,10 +15,6 @@ import org.xbib.net.UsersProvider; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; - public class LoginAuthenticationHandler implements HttpHandler { private static final Logger logger = Logger.getLogger(LoginAuthenticationHandler.class.getName()); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieDecoder.java b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieDecoder.java index 3a575d0..a424e47 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieDecoder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieDecoder.java @@ -1,13 +1,12 @@ package org.xbib.net.http.server.cookie; -import org.xbib.net.http.cookie.Cookie; -import org.xbib.net.http.cookie.CookieHeaderNames; -import org.xbib.net.http.cookie.DefaultCookie; - import java.util.Collections; import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; +import org.xbib.net.http.cookie.Cookie; +import org.xbib.net.http.cookie.CookieHeaderNames; +import org.xbib.net.http.cookie.DefaultCookie; /** * A RFC6265 compliant cookie decoder to be used server side. diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieEncoder.java b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieEncoder.java index 510eead..98ec4db 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieEncoder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieEncoder.java @@ -1,13 +1,12 @@ package org.xbib.net.http.server.cookie; -import org.xbib.net.http.cookie.Cookie; -import org.xbib.net.http.cookie.CookieHeaderNames; -import org.xbib.net.http.cookie.CookieUtil; -import org.xbib.net.util.DateTimeUtil; - import java.time.Instant; import java.util.Locale; import java.util.Objects; +import org.xbib.net.http.cookie.Cookie; +import org.xbib.net.http.cookie.CookieHeaderNames; +import org.xbib.net.http.cookie.CookieUtil; +import org.xbib.net.util.DateTimeUtil; /** * A RFC6265 compliant cookie encoder to be used server side, diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieSignatureUtil.java b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieSignatureUtil.java index b45ada0..0451cfc 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieSignatureUtil.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/CookieSignatureUtil.java @@ -1,15 +1,14 @@ package org.xbib.net.http.server.cookie; -import org.xbib.net.util.JsonUtil; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; import java.util.Map; +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import org.xbib.net.util.JsonUtil; public class CookieSignatureUtil { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/IncomingCookieHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/IncomingCookieHandler.java index bcff431..614258c 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/IncomingCookieHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/IncomingCookieHandler.java @@ -1,5 +1,6 @@ package org.xbib.net.http.server.cookie; +import java.util.Collection; import java.util.logging.Logger; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.cookie.CookieBox; @@ -7,8 +8,6 @@ import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; -import java.util.Collection; - public class IncomingCookieHandler implements HttpHandler { private static final Logger logger = Logger.getLogger(IncomingCookieHandler.class.getName()); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/OutgoingCookieHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/OutgoingCookieHandler.java index f1a638e..0b48574 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/cookie/OutgoingCookieHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/cookie/OutgoingCookieHandler.java @@ -1,14 +1,13 @@ package org.xbib.net.http.server.cookie; +import java.util.logging.Level; +import java.util.logging.Logger; import org.xbib.net.http.cookie.Cookie; import org.xbib.net.http.cookie.CookieBox; import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; -import java.util.logging.Level; -import java.util.logging.Logger; - public class OutgoingCookieHandler implements HttpHandler { private static final Logger logger = Logger.getLogger(OutgoingCookieHandler.class.getName()); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingHttpService.java b/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingHttpService.java index aaf4105..931c788 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingHttpService.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingHttpService.java @@ -1,16 +1,14 @@ package org.xbib.net.http.server.decorate; +import java.io.IOException; import java.util.Collection; - +import java.util.Objects; import org.xbib.net.ParameterDefinition; import org.xbib.net.http.HttpMethod; import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.HttpSecurityDomain; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpService; - -import java.io.IOException; -import java.util.Objects; +import org.xbib.net.http.server.domain.HttpSecurityDomain; +import org.xbib.net.http.server.service.HttpService; public class DecoratingHttpService implements HttpService { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingService.java b/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingService.java index 98041b1..5cb2256 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingService.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/decorate/DecoratingService.java @@ -1,7 +1,7 @@ package org.xbib.net.http.server.decorate; import org.xbib.net.http.server.HttpServerConfig; -import org.xbib.net.http.server.Service; +import org.xbib.net.http.server.service.Service; public abstract class DecoratingService extends AbstractUnwrappable implements Service { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomain.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomain.java similarity index 94% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomain.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomain.java index f0cf1d6..9949a0d 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomain.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomain.java @@ -1,9 +1,10 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.domain; import java.util.Collection; import java.util.Objects; import java.util.Set; import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.server.service.HttpService; public class BaseHttpDomain implements HttpDomain { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomainBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomainBuilder.java similarity index 93% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomainBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomainBuilder.java index 5ed34b3..397276e 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpDomainBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpDomainBuilder.java @@ -1,4 +1,4 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.domain; import java.io.IOException; import java.util.ArrayList; @@ -7,6 +7,7 @@ import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.server.service.HttpService; public class BaseHttpDomainBuilder implements HttpDomainBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomain.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomain.java similarity index 87% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomain.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomain.java index cf81ca8..628573e 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomain.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomain.java @@ -1,7 +1,8 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.domain; import java.util.List; import org.xbib.net.SecurityRealm; +import org.xbib.net.http.server.HttpHandler; public class BaseHttpSecurityDomain implements HttpSecurityDomain { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomainBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomainBuilder.java similarity index 89% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomainBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomainBuilder.java index aa0a515..8b433ce 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpSecurityDomainBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/BaseHttpSecurityDomainBuilder.java @@ -1,8 +1,9 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.domain; import java.util.Arrays; import java.util.List; import org.xbib.net.SecurityRealm; +import org.xbib.net.http.server.HttpHandler; public class BaseHttpSecurityDomainBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpDomain.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomain.java similarity index 79% rename from net-http-server/src/main/java/org/xbib/net/http/server/HttpDomain.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomain.java index 0830d2d..f4f212a 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpDomain.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomain.java @@ -1,9 +1,9 @@ -package org.xbib.net.http.server; - -import org.xbib.net.http.HttpAddress; +package org.xbib.net.http.server.domain; import java.util.Collection; import java.util.Set; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.server.service.HttpService; /** * The {@code HttpDomain} interface represents a set of domain names attached to an HTTP address. diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpDomainBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomainBuilder.java similarity index 77% rename from net-http-server/src/main/java/org/xbib/net/http/server/HttpDomainBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomainBuilder.java index 038a25b..be7b250 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpDomainBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpDomainBuilder.java @@ -1,8 +1,8 @@ -package org.xbib.net.http.server; - -import org.xbib.net.http.HttpAddress; +package org.xbib.net.http.server.domain; import java.io.IOException; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.server.service.HttpService; public interface HttpDomainBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpSecurityDomain.java b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpSecurityDomain.java similarity index 65% rename from net-http-server/src/main/java/org/xbib/net/http/server/HttpSecurityDomain.java rename to net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpSecurityDomain.java index 50548fa..37a1414 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpSecurityDomain.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/domain/HttpSecurityDomain.java @@ -1,7 +1,8 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.domain; import java.util.List; import org.xbib.net.SecurityDomain; +import org.xbib.net.http.server.HttpHandler; public interface HttpSecurityDomain extends SecurityDomain { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/handler/InternalServerErrorHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/handler/InternalServerErrorHandler.java index 8ac5e43..4355fbb 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/handler/InternalServerErrorHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/handler/InternalServerErrorHandler.java @@ -1,13 +1,12 @@ package org.xbib.net.http.server.handler; -import org.xbib.net.http.server.HttpErrorHandler; -import org.xbib.net.http.server.HttpException; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.server.HttpErrorHandler; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpServerContext; public class InternalServerErrorHandler implements HttpErrorHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotFoundHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotFoundHandler.java index 766b700..0148e4d 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotFoundHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotFoundHandler.java @@ -1,11 +1,10 @@ package org.xbib.net.http.server.handler; +import java.io.IOException; import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.server.HttpErrorHandler; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; - public class NotFoundHandler implements HttpErrorHandler { public NotFoundHandler() { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotImplementedHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotImplementedHandler.java index 9b55eef..8ccb880 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotImplementedHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/handler/NotImplementedHandler.java @@ -1,11 +1,10 @@ package org.xbib.net.http.server.handler; +import java.io.IOException; import org.xbib.net.http.HttpResponseStatus; import org.xbib.net.http.server.HttpErrorHandler; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; - public class NotImplementedHandler implements HttpErrorHandler { public NotImplementedHandler() { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapRealm.java b/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapRealm.java index 1983108..235a84b 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapRealm.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapRealm.java @@ -3,8 +3,8 @@ package org.xbib.net.http.server.ldap; import java.util.Map; import org.xbib.net.Authenticator; import org.xbib.net.GroupsProvider; -import org.xbib.net.UsersProvider; import org.xbib.net.SecurityRealm; +import org.xbib.net.UsersProvider; public class LdapRealm extends SecurityRealm { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapUsersProvider.java b/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapUsersProvider.java index 9d23876..c978146 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapUsersProvider.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/ldap/LdapUsersProvider.java @@ -7,9 +7,8 @@ import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.SearchResult; -import org.xbib.net.UsersProvider; import org.xbib.net.UserDetails; - +import org.xbib.net.UsersProvider; import static java.lang.String.format; public class LdapUsersProvider extends UsersProvider { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/persist/file/FilePropertiesCodec.java b/net-http-server/src/main/java/org/xbib/net/http/server/persist/file/FilePropertiesCodec.java index 01190c6..0dbac69 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/persist/file/FilePropertiesCodec.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/persist/file/FilePropertiesCodec.java @@ -1,7 +1,5 @@ package org.xbib.net.http.server.persist.file; -import org.xbib.net.http.server.persist.Codec; - import java.io.IOException; import java.io.Reader; import java.io.Writer; @@ -12,6 +10,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.xbib.net.http.server.persist.Codec; public class FilePropertiesCodec implements Codec> { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/persist/memory/MemoryPropertiesCodec.java b/net-http-server/src/main/java/org/xbib/net/http/server/persist/memory/MemoryPropertiesCodec.java index 7287d21..0c188ab 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/persist/memory/MemoryPropertiesCodec.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/persist/memory/MemoryPropertiesCodec.java @@ -1,14 +1,12 @@ package org.xbib.net.http.server.persist.memory; -import org.xbib.net.http.server.persist.Codec; - import java.io.IOException; - import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.xbib.net.http.server.persist.Codec; public class MemoryPropertiesCodec implements Codec> { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/render/HttpResponseRenderer.java b/net-http-server/src/main/java/org/xbib/net/http/server/render/HttpResponseRenderer.java index dc89a8d..d34912f 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/render/HttpResponseRenderer.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/render/HttpResponseRenderer.java @@ -1,12 +1,11 @@ package org.xbib.net.http.server.render; +import java.io.IOException; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpResponse; import org.xbib.net.http.server.HttpResponseBuilder; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; - public class HttpResponseRenderer implements HttpHandler { public HttpResponseRenderer() { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/AbstractResourceHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/AbstractResourceHandler.java index 5c51706..b2f45b2 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/AbstractResourceHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/AbstractResourceHandler.java @@ -1,20 +1,5 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.Resource; -import org.xbib.net.URL; -import org.xbib.net.buffer.DataBuffer; -import org.xbib.net.buffer.DataBufferUtil; -import org.xbib.net.http.HttpHeaderNames; -import org.xbib.net.http.HttpHeaders; -import org.xbib.net.http.HttpMethod; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.HttpException; -import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.HttpResponseBuilder; -import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.util.DateTimeUtil; -import org.xbib.net.mime.MimeTypeService; - import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; @@ -33,6 +18,20 @@ import java.util.Arrays; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.Resource; +import org.xbib.net.URL; +import org.xbib.net.buffer.DataBuffer; +import org.xbib.net.buffer.DataBufferUtil; +import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.HttpHeaders; +import org.xbib.net.http.HttpMethod; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpResponseBuilder; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.mime.MimeTypeService; +import org.xbib.net.util.DateTimeUtil; public abstract class AbstractResourceHandler implements HttpHandler { @@ -267,6 +266,7 @@ public abstract class AbstractResourceHandler implements HttpHandler { .append(StandardCharsets.ISO_8859_1.decode(dataBuffer.asByteBuffer())) .append('\n') .append("--MULTIPART_BOUNDARY--").append('\n'); + dataBuffer.release(); } catch (URISyntaxException | IOException e) { logger.log(Level.FINEST, e.getMessage(), e); } @@ -345,9 +345,10 @@ public abstract class AbstractResourceHandler implements HttpHandler { } else { fileChannel = fileChannel.position(offset); try (ReadableByteChannel channel = fileChannel) { + DataBuffer dataBuffer = DataBufferUtil.readBuffer(responseBuilder.getDataBufferFactory(), channel, size); responseBuilder.setResponseStatus(httpResponseStatus) .setContentType(contentType) - .write(DataBufferUtil.readBuffer(responseBuilder.getDataBufferFactory(), channel, size)); + .write(dataBuffer); } } } @@ -363,10 +364,11 @@ public abstract class AbstractResourceHandler implements HttpHandler { } else { long n = inputStream.skip(offset); try (ReadableByteChannel channel = Channels.newChannel(inputStream)) { + DataBuffer dataBuffer = DataBufferUtil.readBuffer(responseBuilder.getDataBufferFactory(), channel, size); responseBuilder .setResponseStatus(httpResponseStatus) .setContentType(contentType) - .write(DataBufferUtil.readBuffer(responseBuilder.getDataBufferFactory(), channel, size)); + .write(dataBuffer); } } } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/BaseResource.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/BaseResource.java index ed63bc6..892fbff 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/BaseResource.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/BaseResource.java @@ -1,10 +1,9 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.Resource; -import org.xbib.net.URL; - import java.nio.file.Path; import java.time.Instant; +import org.xbib.net.Resource; +import org.xbib.net.URL; public class BaseResource implements Resource { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/ClassLoaderResourceHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/ClassLoaderResourceHandler.java index 70acc5f..54d6bf7 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/ClassLoaderResourceHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/ClassLoaderResourceHandler.java @@ -1,16 +1,15 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.PathNormalizer; -import org.xbib.net.Resource; -import org.xbib.net.URL; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.net.URLConnection; import java.nio.file.Path; import java.time.Instant; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.PathNormalizer; +import org.xbib.net.Resource; +import org.xbib.net.URL; +import org.xbib.net.http.server.HttpServerContext; public class ClassLoaderResourceHandler extends AbstractResourceHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/FileResourceHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/FileResourceHandler.java index 53b4e2b..18eb15d 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/FileResourceHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/FileResourceHandler.java @@ -1,19 +1,18 @@ package org.xbib.net.http.server.resource; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.xbib.net.PathNormalizer; -import org.xbib.net.Resource; -import org.xbib.net.URL; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.time.Instant; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.xbib.net.PathNormalizer; +import org.xbib.net.Resource; +import org.xbib.net.URL; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.application.Application; public class FileResourceHandler extends AbstractResourceHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResource.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResource.java index 88062b1..f55d768 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResource.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResource.java @@ -1,15 +1,14 @@ package org.xbib.net.http.server.resource; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.xbib.net.URL; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.time.Instant; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.xbib.net.URL; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.application.Application; public class HtmlTemplateResource implements HttpServerResource { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResourceHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResourceHandler.java index de2ded2..9b51eb9 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResourceHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HtmlTemplateResourceHandler.java @@ -1,10 +1,9 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.Resource; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.nio.file.Path; +import org.xbib.net.Resource; +import org.xbib.net.http.server.HttpServerContext; public class HtmlTemplateResourceHandler extends AbstractResourceHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HttpServerResource.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HttpServerResource.java index 61dd57c..013cce3 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/HttpServerResource.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/HttpServerResource.java @@ -1,10 +1,9 @@ package org.xbib.net.http.server.resource; +import java.io.IOException; import org.xbib.net.Resource; import org.xbib.net.http.server.HttpServerContext; -import java.io.IOException; - public interface HttpServerResource extends Resource { void render(HttpServerContext httpServerContext) throws IOException; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/MethodHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/MethodHandler.java index c830b56..6d49d84 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/MethodHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/MethodHandler.java @@ -1,11 +1,10 @@ package org.xbib.net.http.server.resource; +import java.lang.reflect.Method; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpServerContext; -import java.lang.reflect.Method; - public class MethodHandler implements HttpHandler { private final Method m; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/ResourceResolver.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/ResourceResolver.java index 722a9e0..5c8dbc3 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/ResourceResolver.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/ResourceResolver.java @@ -1,10 +1,9 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.Resource; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.util.List; +import org.xbib.net.Resource; +import org.xbib.net.http.server.HttpServerContext; public interface ResourceResolver { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/WebRootResourceResolver.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/WebRootResourceResolver.java index 3a38862..3829ca8 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/WebRootResourceResolver.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/WebRootResourceResolver.java @@ -1,18 +1,17 @@ package org.xbib.net.http.server.resource; -import org.xbib.net.PathNormalizer; -import org.xbib.net.Resource; -import org.xbib.net.URL; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.HttpRequest; -import org.xbib.net.http.server.HttpServerContext; - import java.io.IOException; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import org.xbib.net.PathNormalizer; +import org.xbib.net.Resource; +import org.xbib.net.URL; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.server.HttpRequest; +import org.xbib.net.http.server.HttpServerContext; public class WebRootResourceResolver implements ResourceResolver { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/resource/negotiate/ContentTypeNegotiator.java b/net-http-server/src/main/java/org/xbib/net/http/server/resource/negotiate/ContentTypeNegotiator.java index 009a956..dffff50 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/resource/negotiate/ContentTypeNegotiator.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/resource/negotiate/ContentTypeNegotiator.java @@ -1,14 +1,13 @@ package org.xbib.net.http.server.resource.negotiate; -import org.xbib.net.http.HttpHeaderNames; -import org.xbib.net.http.server.HttpRequest; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.regex.Pattern; +import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.server.HttpRequest; /** * Taken from org.apache.any23.servlet.conneg.ContentTypeNegotiator diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseDomainsByAddress.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseDomainsByAddress.java index f8e1845..ab6e208 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseDomainsByAddress.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseDomainsByAddress.java @@ -2,7 +2,7 @@ package org.xbib.net.http.server.route; import org.xbib.datastructures.common.LinkedHashSetMultiMap; import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.server.HttpDomain; +import org.xbib.net.http.server.domain.HttpDomain; public class BaseDomainsByAddress extends LinkedHashSetMultiMap implements DomainsByAddress { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRoute.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRoute.java index 9de0eb9..ca903da 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRoute.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRoute.java @@ -1,19 +1,18 @@ package org.xbib.net.http.server.route; -import java.util.Collection; -import java.util.Set; -import org.xbib.net.ParameterBuilder; -import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.HttpMethod; - import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.PathMatcher; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; +import org.xbib.net.ParameterBuilder; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.HttpMethod; public class BaseHttpRoute implements HttpRoute { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouteResolver.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouteResolver.java index f186cb0..1656fb2 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouteResolver.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouteResolver.java @@ -1,20 +1,17 @@ package org.xbib.net.http.server.route; -import java.util.Set; -import org.xbib.net.Parameter; -import org.xbib.net.ParameterBuilder; -import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.HttpMethod; - import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.logging.Level; +import java.util.Set; import java.util.logging.Logger; import java.util.stream.Collectors; - +import org.xbib.net.Parameter; +import org.xbib.net.ParameterBuilder; +import org.xbib.net.http.HttpAddress; +import org.xbib.net.http.HttpMethod; import static org.xbib.net.Parameter.Domain.PATH; public class BaseHttpRouteResolver implements HttpRouteResolver { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouter.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouter.java index 88d37d3..f2697de 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouter.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouter.java @@ -2,31 +2,29 @@ package org.xbib.net.http.server.route; import java.io.IOException; import java.util.ArrayList; -import java.util.List; import java.util.Collection; +import java.util.List; import java.util.NavigableSet; import java.util.Objects; import java.util.Set; +import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.TreeSet; - import org.xbib.datastructures.common.LinkedHashSetMultiMap; import org.xbib.datastructures.common.MultiMap; import org.xbib.net.URL; import org.xbib.net.http.HttpAddress; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.HttpDomain; import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpRequestBuilder; import org.xbib.net.http.server.HttpResponseBuilder; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.domain.HttpDomain; import org.xbib.net.http.server.handler.InternalServerErrorHandler; - +import org.xbib.net.http.server.service.HttpService; import static org.xbib.net.http.HttpResponseStatus.NOT_FOUND; public class BaseHttpRouter implements HttpRouter { @@ -88,7 +86,8 @@ public class BaseHttpRouter implements HttpRouter { } @Override - public void route(HttpRequestBuilder requestBuilder, HttpResponseBuilder responseBuilder) { + public void route(HttpRequestBuilder requestBuilder, + HttpResponseBuilder responseBuilder) { Objects.requireNonNull(requestBuilder); Objects.requireNonNull(requestBuilder.getRequestURI()); Objects.requireNonNull(requestBuilder.getBaseURL()); @@ -108,7 +107,8 @@ public class BaseHttpRouter implements HttpRouter { route(httpServerContext, httpRouteResolverResults); } - protected void route(HttpServerContext httpServerContext, List> httpRouteResolverResults) { + protected void route(HttpServerContext httpServerContext, + List> httpRouteResolverResults) { application.onOpen(httpServerContext); try { if (httpServerContext.isFailed()) { @@ -168,7 +168,8 @@ public class BaseHttpRouter implements HttpRouter { } @Override - public void routeStatus(HttpResponseStatus httpResponseStatus, HttpServerContext httpServerContext) { + public void routeStatus(HttpResponseStatus httpResponseStatus, + HttpServerContext httpServerContext) { logger.log(Level.FINER, "routing status " + httpResponseStatus); try { HttpHandler httpHandler = getHandler(httpResponseStatus); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouterBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouterBuilder.java index 1e10084..6b13751 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouterBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/BaseHttpRouterBuilder.java @@ -1,19 +1,17 @@ package org.xbib.net.http.server.route; -import org.xbib.net.http.server.HttpDomain; -import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.handler.BadRequestHandler; -import org.xbib.net.http.server.handler.ForbiddenHandler; -import org.xbib.net.http.server.handler.InternalServerErrorHandler; -import org.xbib.net.http.server.handler.NotFoundHandler; -import org.xbib.net.http.server.handler.NotImplementedHandler; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Objects; - +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.domain.HttpDomain; +import org.xbib.net.http.server.handler.BadRequestHandler; +import org.xbib.net.http.server.handler.ForbiddenHandler; +import org.xbib.net.http.server.handler.InternalServerErrorHandler; +import org.xbib.net.http.server.handler.NotFoundHandler; +import org.xbib.net.http.server.handler.NotImplementedHandler; import org.xbib.net.http.server.handler.UnauthorizedHandler; import org.xbib.net.http.server.handler.VersionNotSupportedHandler; diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/DomainsByAddress.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/DomainsByAddress.java index 586b899..8de79e2 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/DomainsByAddress.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/DomainsByAddress.java @@ -2,7 +2,7 @@ package org.xbib.net.http.server.route; import org.xbib.datastructures.common.MultiMap; import org.xbib.net.http.HttpAddress; -import org.xbib.net.http.server.HttpDomain; +import org.xbib.net.http.server.domain.HttpDomain; public interface DomainsByAddress extends MultiMap { } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouteResolver.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouteResolver.java index 9a345ca..503f721 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouteResolver.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouteResolver.java @@ -1,12 +1,11 @@ package org.xbib.net.http.server.route; +import java.util.List; import java.util.Set; import org.xbib.net.Parameter; import org.xbib.net.http.HttpAddress; import org.xbib.net.http.HttpMethod; -import java.util.List; - public interface HttpRouteResolver { void resolve(HttpRoute route, ResultListener listener); diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouter.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouter.java index bdb8ad5..a29d357 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouter.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouter.java @@ -1,14 +1,13 @@ package org.xbib.net.http.server.route; +import java.util.Collection; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.HttpDomain; import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpRequestBuilder; import org.xbib.net.http.server.HttpResponseBuilder; import org.xbib.net.http.server.HttpServerContext; - -import java.util.Collection; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.domain.HttpDomain; public interface HttpRouter { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouterBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouterBuilder.java index 7b9a8b8..8dc8070 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouterBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/route/HttpRouterBuilder.java @@ -1,7 +1,7 @@ package org.xbib.net.http.server.route; -import org.xbib.net.http.server.HttpDomain; import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.domain.HttpDomain; public interface HttpRouterBuilder { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpService.java b/net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpService.java similarity index 91% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpService.java rename to net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpService.java index 13b4f72..d0c7072 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpService.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpService.java @@ -1,15 +1,16 @@ -package org.xbib.net.http.server; - -import java.util.Collection; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.xbib.net.ParameterDefinition; -import org.xbib.net.http.HttpMethod; +package org.xbib.net.http.server.service; import java.io.IOException; +import java.util.Collection; import java.util.Objects; +import java.util.logging.Logger; +import org.xbib.net.ParameterDefinition; +import org.xbib.net.http.HttpMethod; import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.domain.HttpSecurityDomain; public class BaseHttpService implements HttpService { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServiceBuilder.java b/net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpServiceBuilder.java similarity index 85% rename from net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServiceBuilder.java rename to net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpServiceBuilder.java index b79542b..bf7b27c 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/BaseHttpServiceBuilder.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/service/BaseHttpServiceBuilder.java @@ -1,15 +1,15 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.service; import java.util.Arrays; import java.util.Collection; -import java.util.HashSet; -import java.util.LinkedHashSet; - -import org.xbib.net.ParameterDefinition; -import org.xbib.net.http.HttpMethod; -import org.xbib.net.PathNormalizer; - import java.util.Objects; +import java.util.Set; +import org.xbib.net.ParameterDefinition; +import org.xbib.net.PathNormalizer; +import org.xbib.net.http.HttpMethod; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpServiceBuilder; +import org.xbib.net.http.server.domain.HttpSecurityDomain; public class BaseHttpServiceBuilder implements HttpServiceBuilder { @@ -28,8 +28,7 @@ public class BaseHttpServiceBuilder implements HttpServiceBuilder { protected BaseHttpServiceBuilder() { this.prefix = ""; this.pathSpec = "/**"; - this.methods = new HashSet<>(); - methods.add(HttpMethod.GET); + this.methods = Set.of(HttpMethod.GET); this.handlers = null; this.securityDomain = null; } @@ -49,8 +48,8 @@ public class BaseHttpServiceBuilder implements HttpServiceBuilder { } @Override - public BaseHttpServiceBuilder setMethod(HttpMethod... method) { - this.methods = new LinkedHashSet<>(Arrays.asList(method)); + public BaseHttpServiceBuilder setMethod(HttpMethod... methods) { + this.methods = Set.of(methods); return this; } diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/HttpService.java b/net-http-server/src/main/java/org/xbib/net/http/server/service/HttpService.java similarity index 74% rename from net-http-server/src/main/java/org/xbib/net/http/server/HttpService.java rename to net-http-server/src/main/java/org/xbib/net/http/server/service/HttpService.java index c074f09..a662a32 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/HttpService.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/service/HttpService.java @@ -1,9 +1,10 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.service; import java.util.Collection; - import org.xbib.net.ParameterDefinition; import org.xbib.net.http.HttpMethod; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.domain.HttpSecurityDomain; public interface HttpService extends HttpHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/Service.java b/net-http-server/src/main/java/org/xbib/net/http/server/service/Service.java similarity index 92% rename from net-http-server/src/main/java/org/xbib/net/http/server/Service.java rename to net-http-server/src/main/java/org/xbib/net/http/server/service/Service.java index 0004c03..cc36464 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/Service.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/service/Service.java @@ -1,7 +1,8 @@ -package org.xbib.net.http.server; +package org.xbib.net.http.server.service; +import org.xbib.net.http.server.HttpServerConfig; +import org.xbib.net.http.server.HttpServerContext; import org.xbib.net.http.server.decorate.Unwrappable; - import static java.util.Objects.requireNonNull; @FunctionalInterface diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/session/IncomingSessionHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/session/IncomingSessionHandler.java index 5565c72..fbfeed6 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/session/IncomingSessionHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/session/IncomingSessionHandler.java @@ -1,18 +1,5 @@ package org.xbib.net.http.server.session; -import org.xbib.net.PercentDecoder; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.cookie.Cookie; -import org.xbib.net.http.cookie.CookieBox; -import org.xbib.net.http.server.HttpException; -import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.auth.BaseUserProfile; -import org.xbib.net.UserProfile; -import org.xbib.net.http.server.cookie.CookieSignatureException; -import org.xbib.net.http.server.cookie.CookieSignatureUtil; -import org.xbib.net.http.server.persist.Codec; - import java.io.IOException; import java.nio.charset.CodingErrorAction; import java.nio.charset.StandardCharsets; @@ -24,6 +11,18 @@ import java.util.Set; import java.util.function.Supplier; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.PercentDecoder; +import org.xbib.net.UserProfile; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.cookie.Cookie; +import org.xbib.net.http.cookie.CookieBox; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.auth.BaseUserProfile; +import org.xbib.net.http.server.cookie.CookieSignatureException; +import org.xbib.net.http.server.cookie.CookieSignatureUtil; +import org.xbib.net.http.server.persist.Codec; public class IncomingSessionHandler implements HttpHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/session/OutgoingSessionHandler.java b/net-http-server/src/main/java/org/xbib/net/http/server/session/OutgoingSessionHandler.java index 33cf7cf..d0cd1f6 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/session/OutgoingSessionHandler.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/session/OutgoingSessionHandler.java @@ -1,21 +1,5 @@ package org.xbib.net.http.server.session; -import org.xbib.net.PercentEncoder; -import org.xbib.net.PercentEncoders; -import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.cookie.Cookie; -import org.xbib.net.http.cookie.CookieBox; -import org.xbib.net.http.cookie.DefaultCookie; -import org.xbib.net.http.cookie.SameSite; -import org.xbib.net.http.server.Application; -import org.xbib.net.http.server.HttpException; -import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.UserProfile; -import org.xbib.net.http.server.cookie.CookieSignatureException; -import org.xbib.net.http.server.cookie.CookieSignatureUtil; -import org.xbib.net.http.server.persist.Codec; - import java.io.IOException; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; @@ -26,6 +10,21 @@ import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; +import org.xbib.net.PercentEncoder; +import org.xbib.net.PercentEncoders; +import org.xbib.net.UserProfile; +import org.xbib.net.http.HttpResponseStatus; +import org.xbib.net.http.cookie.Cookie; +import org.xbib.net.http.cookie.CookieBox; +import org.xbib.net.http.cookie.DefaultCookie; +import org.xbib.net.http.cookie.SameSite; +import org.xbib.net.http.server.HttpException; +import org.xbib.net.http.server.HttpHandler; +import org.xbib.net.http.server.HttpServerContext; +import org.xbib.net.http.server.application.Application; +import org.xbib.net.http.server.cookie.CookieSignatureException; +import org.xbib.net.http.server.cookie.CookieSignatureUtil; +import org.xbib.net.http.server.persist.Codec; public class OutgoingSessionHandler implements HttpHandler { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/session/file/FileJsonSessionCodec.java b/net-http-server/src/main/java/org/xbib/net/http/server/session/file/FileJsonSessionCodec.java index 6973da7..b8f5b61 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/session/file/FileJsonSessionCodec.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/session/file/FileJsonSessionCodec.java @@ -1,13 +1,5 @@ package org.xbib.net.http.server.session.file; -import org.xbib.net.PercentEncoder; -import org.xbib.net.PercentEncoders; -import org.xbib.net.http.server.persist.Codec; -import org.xbib.net.http.server.session.BaseSession; -import org.xbib.net.http.server.session.Session; -import org.xbib.net.http.server.session.SessionListener; -import org.xbib.net.util.JsonUtil; - import java.io.IOException; import java.io.UncheckedIOException; import java.io.Writer; @@ -22,6 +14,13 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Stream; +import org.xbib.net.PercentEncoder; +import org.xbib.net.PercentEncoders; +import org.xbib.net.http.server.persist.Codec; +import org.xbib.net.http.server.session.BaseSession; +import org.xbib.net.http.server.session.Session; +import org.xbib.net.http.server.session.SessionListener; +import org.xbib.net.util.JsonUtil; public class FileJsonSessionCodec implements Codec { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/session/memory/MemoryPropertiesSessionCodec.java b/net-http-server/src/main/java/org/xbib/net/http/server/session/memory/MemoryPropertiesSessionCodec.java index 4232372..80d3a18 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/session/memory/MemoryPropertiesSessionCodec.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/session/memory/MemoryPropertiesSessionCodec.java @@ -1,16 +1,15 @@ package org.xbib.net.http.server.session.memory; -import org.xbib.net.http.server.persist.Codec; -import org.xbib.net.http.server.session.BaseSession; -import org.xbib.net.http.server.session.Session; -import org.xbib.net.http.server.session.SessionListener; - import java.io.IOException; import java.time.Duration; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.xbib.net.http.server.persist.Codec; +import org.xbib.net.http.server.session.BaseSession; +import org.xbib.net.http.server.session.Session; +import org.xbib.net.http.server.session.SessionListener; public class MemoryPropertiesSessionCodec implements Codec { diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/util/BlockingThreadPoolExecutor.java b/net-http-server/src/main/java/org/xbib/net/http/server/util/BlockingThreadPoolExecutor.java deleted file mode 100644 index 549210e..0000000 --- a/net-http-server/src/main/java/org/xbib/net/http/server/util/BlockingThreadPoolExecutor.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.xbib.net.http.server.util; - -import java.io.Closeable; -import java.io.IOException; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.CancellationException; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.concurrent.FutureTask; -import java.util.concurrent.SynchronousQueue; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class BlockingThreadPoolExecutor extends ThreadPoolExecutor { - - private final Logger logger = Logger.getLogger(BlockingThreadPoolExecutor.class.getName()); - - public BlockingThreadPoolExecutor(int nThreads, int maxQueue, - long keepAliveTime, TimeUnit timeUnit, - ThreadFactory threadFactory) { - super(nThreads, nThreads, keepAliveTime, timeUnit, createBlockingQueue(maxQueue), threadFactory); - logger.log(Level.INFO, "blocking threadpool executor up with nThreads = " + nThreads + - " keepAliveTime = " + keepAliveTime + - " time unit = " + timeUnit + - " maxQueue = " + maxQueue + - " thread factory = " + threadFactory); - } - - private static BlockingQueue createBlockingQueue(int max) { - return max == Integer.MAX_VALUE ? new SynchronousQueue<>(true) : new ArrayBlockingQueue<>(max); - } - - /* - * Examine Throwable or Error of a thread after execution just to log them. - */ - @Override - protected void afterExecute(Runnable runnable, Throwable terminationCause) { - super.afterExecute(runnable, terminationCause); - logger.log(Level.FINE, "after dispatching " + runnable + " terminationCause = " + terminationCause); - Throwable throwable = terminationCause; - if (throwable == null && runnable instanceof Future) { - try { - Future future = (Future) runnable; - if (!future.isDone() && !future.isCancelled()) { - logger.log(Level.FINE, "waiting for " + future); - future.get(); - } - if (future instanceof Closeable closeable) { - closeable.close(); - } - } catch (CancellationException ce) { - logger.log(Level.FINE, ce.getMessage(), ce); - throwable = ce; - } catch (ExecutionException ee) { - logger.log(Level.FINE, ee.getMessage(), ee); - throwable = ee.getCause(); - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); - logger.log(Level.FINE, ie.getMessage(), ie); - } catch (IOException e) { - logger.log(Level.FINE, e.getMessage(), e); - } - } - if (throwable != null) { - logger.log(Level.SEVERE, throwable.getMessage(), throwable); - } - } -} diff --git a/net-http-server/src/main/java/org/xbib/net/http/server/validate/HttpRequestValidator.java b/net-http-server/src/main/java/org/xbib/net/http/server/validate/HttpRequestValidator.java index aad86cc..6597f70 100644 --- a/net-http-server/src/main/java/org/xbib/net/http/server/validate/HttpRequestValidator.java +++ b/net-http-server/src/main/java/org/xbib/net/http/server/validate/HttpRequestValidator.java @@ -1,11 +1,11 @@ package org.xbib.net.http.server.validate; import org.xbib.datastructures.common.Pair; -import org.xbib.net.http.server.UnknownExpectException; +import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpException; -import org.xbib.net.http.HttpHeaderNames; +import org.xbib.net.http.server.UnknownExpectException; public class HttpRequestValidator implements HttpHandler { diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultMarkupTemplate.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultMarkupTemplate.java index 55a13c8..2278701 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultMarkupTemplate.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultMarkupTemplate.java @@ -14,7 +14,7 @@ import org.xbib.net.URLBuilder; import org.xbib.net.buffer.DefaultDataBufferFactory; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpResponseBuilder; import org.xbib.net.http.server.session.Session; diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultTemplateResolver.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultTemplateResolver.java index 69682a7..92fb4c0 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultTemplateResolver.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/DefaultTemplateResolver.java @@ -3,7 +3,7 @@ package org.xbib.net.http.template.groovy; import groovy.text.markup.MarkupTemplateEngine.TemplateResource; import groovy.text.markup.TemplateConfiguration; import groovy.text.markup.TemplateResolver; -import org.xbib.net.http.server.Resolver; +import org.xbib.net.http.server.application.Resolver; import java.io.IOException; import java.net.URL; diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyHttpResonseStatusTemplateResource.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyHttpResonseStatusTemplateResource.java index bd6c6fe..9acb8e7 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyHttpResonseStatusTemplateResource.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyHttpResonseStatusTemplateResource.java @@ -3,7 +3,7 @@ package org.xbib.net.http.template.groovy; import java.util.logging.Level; import java.util.logging.Logger; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpServerContext; import java.io.IOException; diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyMarkupTemplateHandler.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyMarkupTemplateHandler.java index f8071e5..8441bc0 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyMarkupTemplateHandler.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyMarkupTemplateHandler.java @@ -6,10 +6,10 @@ import groovy.text.markup.MarkupTemplateEngine; import groovy.text.markup.TemplateConfiguration; import java.util.logging.Level; import java.util.logging.Logger; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpHandler; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.Resolver; +import org.xbib.net.http.server.application.Resolver; import java.io.IOException; import java.nio.file.Path; diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateApplicationModule.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateApplicationModule.java index 3901797..b53d40a 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateApplicationModule.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateApplicationModule.java @@ -1,8 +1,8 @@ package org.xbib.net.http.template.groovy; import groovy.text.markup.BaseTemplate; -import org.xbib.net.http.server.BaseApplicationModule; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.BaseApplicationModule; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpRequest; import org.xbib.net.http.server.HttpServerContext; @@ -11,7 +11,7 @@ import java.io.UncheckedIOException; import java.util.logging.Level; import java.util.logging.Logger; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.service.HttpService; import org.xbib.settings.Settings; public class GroovyTemplateApplicationModule extends BaseApplicationModule { diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateResource.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateResource.java index b053ae6..c64ef03 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateResource.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateResource.java @@ -6,10 +6,10 @@ import groovy.text.Template; import groovy.text.TemplateEngine; import org.xbib.net.http.HttpHeaderNames; import org.xbib.net.http.HttpResponseStatus; -import org.xbib.net.http.server.Application; +import org.xbib.net.http.server.application.Application; import org.xbib.net.http.server.HttpException; import org.xbib.net.http.server.HttpServerContext; -import org.xbib.net.http.server.HttpService; +import org.xbib.net.http.server.service.HttpService; import org.xbib.net.http.server.resource.negotiate.LocaleNegotiator; import org.xbib.net.http.server.resource.HtmlTemplateResource; import org.xbib.net.http.server.resource.HtmlTemplateResourceHandler; diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateService.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateService.java index a7f0163..f09a3dc 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateService.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateService.java @@ -1,6 +1,6 @@ package org.xbib.net.http.template.groovy; -import org.xbib.net.http.server.BaseHttpService; +import org.xbib.net.http.server.service.BaseHttpService; public class GroovyTemplateService extends BaseHttpService { diff --git a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateServiceBuilder.java b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateServiceBuilder.java index d1bc996..99250ec 100644 --- a/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateServiceBuilder.java +++ b/net-http-template-groovy/src/main/java/org/xbib/net/http/template/groovy/GroovyTemplateServiceBuilder.java @@ -2,11 +2,11 @@ package org.xbib.net.http.template.groovy; import org.xbib.net.ParameterDefinition; import org.xbib.net.http.HttpMethod; -import org.xbib.net.http.server.BaseHttpServiceBuilder; +import org.xbib.net.http.server.service.BaseHttpServiceBuilder; import java.nio.file.Path; import org.xbib.net.http.server.HttpHandler; -import org.xbib.net.http.server.HttpSecurityDomain; +import org.xbib.net.http.server.domain.HttpSecurityDomain; public class GroovyTemplateServiceBuilder extends BaseHttpServiceBuilder { diff --git a/settings.gradle b/settings.gradle index c07dd66..682d6a0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,7 +8,7 @@ dependencyResolutionManagement { version('netty-tcnative', '2.0.59.Final') version('datastructures', '2.0.0') version('config', '5.0.2') - version('net', '3.0.5') + version('net', '3.1.0') library('junit-jupiter-api', 'org.junit.jupiter', 'junit-jupiter-api').versionRef('junit') library('junit-jupiter-params', 'org.junit.jupiter', 'junit-jupiter-params').versionRef('junit') library('junit-jupiter-engine', 'org.junit.jupiter', 'junit-jupiter-engine').versionRef('junit')