This commit is contained in:
Redkale
2017-08-28 21:54:48 +08:00
parent c7a81513fe
commit 222dc0edce
16 changed files with 39 additions and 3 deletions

View File

@@ -22,6 +22,7 @@ import java.util.logging.Formatter;
* *
* @author zhangjx * @author zhangjx
*/ */
@SuppressWarnings("unchecked")
public class LogFileHandler extends Handler { public class LogFileHandler extends Handler {
/** /**

View File

@@ -122,6 +122,7 @@ public class NodeHttpServer extends NodeServer {
}, WebSocketNode.class); }, WebSocketNode.class);
} }
@SuppressWarnings("unchecked")
protected void loadHttpFilter(final AnyValue filtersConf, final ClassFilter<? extends Filter> classFilter) throws Exception { protected void loadHttpFilter(final AnyValue filtersConf, final ClassFilter<? extends Filter> classFilter) throws Exception {
final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null; final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null;
final String threadName = "[" + Thread.currentThread().getName() + "] "; final String threadName = "[" + Thread.currentThread().getName() + "] ";
@@ -138,6 +139,7 @@ public class NodeHttpServer extends NodeServer {
if (sb != null && sb.length() > 0) logger.log(Level.INFO, sb.toString()); if (sb != null && sb.length() > 0) logger.log(Level.INFO, sb.toString());
} }
@SuppressWarnings("unchecked")
protected void loadHttpServlet(final ClassFilter<? extends Servlet> servletFilter, ClassFilter<? extends WebSocket> webSocketFilter) throws Exception { protected void loadHttpServlet(final ClassFilter<? extends Servlet> servletFilter, ClassFilter<? extends WebSocket> webSocketFilter) throws Exception {
final AnyValue servletsConf = this.serverConf.getAnyValue("servlets"); final AnyValue servletsConf = this.serverConf.getAnyValue("servlets");
final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null; final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null;
@@ -195,6 +197,7 @@ public class NodeHttpServer extends NodeServer {
if (sb != null && sb.length() > 0) logger.log(Level.INFO, sb.toString().trim()); if (sb != null && sb.length() > 0) logger.log(Level.INFO, sb.toString().trim());
} }
@SuppressWarnings("unchecked")
protected void loadRestServlet(final ClassFilter<? extends WebSocket> webSocketFilter, final AnyValue restConf, final List<Object> restedObjects, final StringBuilder sb) throws Exception { protected void loadRestServlet(final ClassFilter<? extends WebSocket> webSocketFilter, final AnyValue restConf, final List<Object> restedObjects, final StringBuilder sb) throws Exception {
if (!rest) return; if (!rest) return;
if (restConf == null) return; //不存在REST服务 if (restConf == null) return; //不存在REST服务

View File

@@ -85,6 +85,7 @@ public class NodeSncpServer extends NodeServer {
if (sncpServer != null) loadSncpFilter(this.serverConf.getAnyValue("fliters"), filterFilter); if (sncpServer != null) loadSncpFilter(this.serverConf.getAnyValue("fliters"), filterFilter);
} }
@SuppressWarnings("unchecked")
protected void loadSncpFilter(final AnyValue servletsConf, final ClassFilter<? extends Filter> classFilter) throws Exception { protected void loadSncpFilter(final AnyValue servletsConf, final ClassFilter<? extends Filter> classFilter) throws Exception {
final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null; final StringBuilder sb = logger.isLoggable(Level.INFO) ? new StringBuilder() : null;
final String threadName = "[" + Thread.currentThread().getName() + "] "; final String threadName = "[" + Thread.currentThread().getName() + "] ";
@@ -106,6 +107,7 @@ public class NodeSncpServer extends NodeServer {
} }
@Override @Override
@SuppressWarnings("unchecked")
protected ClassFilter<Filter> createFilterClassFilter() { protected ClassFilter<Filter> createFilterClassFilter() {
return createClassFilter(null, null, SncpFilter.class, new Class[]{org.redkale.watch.WatchFilter.class}, null, "filters", "filter"); return createClassFilter(null, null, SncpFilter.class, new Class[]{org.redkale.watch.WatchFilter.class}, null, "filters", "filter");
} }

View File

@@ -104,6 +104,7 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
return convertFrom(type, bytes, 0, bytes.length); return convertFrom(type, bytes, 0, bytes.length);
} }
@SuppressWarnings("unchecked")
public <T> T convertFrom(final Type type, final byte[] bytes, final int start, final int len) { public <T> T convertFrom(final Type type, final byte[] bytes, final int start, final int len) {
if (type == null) return null; if (type == null) return null;
final BsonReader in = readerPool.get(); final BsonReader in = readerPool.get();
@@ -114,23 +115,27 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
return rs; return rs;
} }
@SuppressWarnings("unchecked")
public <T> T convertFrom(final Type type, final InputStream in) { public <T> T convertFrom(final Type type, final InputStream in) {
if (type == null || in == null) return null; if (type == null || in == null) return null;
return (T) factory.loadDecoder(type).convertFrom(new BsonStreamReader(in)); return (T) factory.loadDecoder(type).convertFrom(new BsonStreamReader(in));
} }
@Override @Override
@SuppressWarnings("unchecked")
public <T> T convertFrom(final Type type, final ByteBuffer... buffers) { public <T> T convertFrom(final Type type, final ByteBuffer... buffers) {
if (type == null || buffers.length < 1) return null; if (type == null || buffers.length < 1) return null;
return (T) factory.loadDecoder(type).convertFrom(new BsonByteBufferReader((ConvertMask) null, buffers)); return (T) factory.loadDecoder(type).convertFrom(new BsonByteBufferReader((ConvertMask) null, buffers));
} }
@Override @Override
@SuppressWarnings("unchecked")
public <T> T convertFrom(final Type type, final ConvertMask mask, final ByteBuffer... buffers) { public <T> T convertFrom(final Type type, final ConvertMask mask, final ByteBuffer... buffers) {
if (type == null || buffers.length < 1) return null; if (type == null || buffers.length < 1) return null;
return (T) factory.loadDecoder(type).convertFrom(new BsonByteBufferReader(mask, buffers)); return (T) factory.loadDecoder(type).convertFrom(new BsonByteBufferReader(mask, buffers));
} }
@SuppressWarnings("unchecked")
public <T> T convertFrom(final Type type, final BsonReader reader) { public <T> T convertFrom(final Type type, final BsonReader reader) {
if (type == null) return null; if (type == null) return null;
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@@ -87,6 +87,7 @@ public class BsonReader extends Reader {
* 跳过属性的值 * 跳过属性的值
*/ */
@Override @Override
@SuppressWarnings("unchecked")
public final void skipValue() { public final void skipValue() {
if (typeval == 0) return; if (typeval == 0) return;
final byte val = this.typeval; final byte val = this.typeval;

View File

@@ -20,6 +20,7 @@ import java.net.*;
* @param <R> Reader输入的子类型 * @param <R> Reader输入的子类型
* @param <W> Writer输出的子类型 * @param <W> Writer输出的子类型
*/ */
@SuppressWarnings("unchecked")
public final class InetAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetAddress> { public final class InetAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetAddress> {
public static final InetAddressSimpledCoder instance = new InetAddressSimpledCoder(); public static final InetAddressSimpledCoder instance = new InetAddressSimpledCoder();
@@ -50,6 +51,7 @@ public final class InetAddressSimpledCoder<R extends Reader, W extends Writer> e
* @param <R> Reader输入的子类型 * @param <R> Reader输入的子类型
* @param <W> Writer输出的子类型 * @param <W> Writer输出的子类型
*/ */
@SuppressWarnings("unchecked")
public final static class InetSocketAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetSocketAddress> { public final static class InetSocketAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetSocketAddress> {
public static final InetSocketAddressSimpledCoder instance = new InetSocketAddressSimpledCoder(); public static final InetSocketAddressSimpledCoder instance = new InetSocketAddressSimpledCoder();

View File

@@ -20,6 +20,7 @@ import org.redkale.util.*;
* *
* @author zhangjx * @author zhangjx
*/ */
@SuppressWarnings("unchecked")
public final class JsonFactory extends ConvertFactory<JsonReader, JsonWriter> { public final class JsonFactory extends ConvertFactory<JsonReader, JsonWriter> {
private static final JsonFactory instance = new JsonFactory(null, Boolean.getBoolean("convert.json.tiny")); private static final JsonFactory instance = new JsonFactory(null, Boolean.getBoolean("convert.json.tiny"));

View File

@@ -118,6 +118,7 @@ public abstract class PrepareServlet<K extends Serializable, C extends Context,
} }
@Override @Override
@SuppressWarnings("unchecked")
public void init(C context, AnyValue config) { public void init(C context, AnyValue config) {
synchronized (filters) { synchronized (filters) {
if (!filters.isEmpty()) { if (!filters.isEmpty()) {
@@ -136,6 +137,7 @@ public abstract class PrepareServlet<K extends Serializable, C extends Context,
} }
@Override @Override
@SuppressWarnings("unchecked")
public void destroy(C context, AnyValue config) { public void destroy(C context, AnyValue config) {
synchronized (filters) { synchronized (filters) {
if (!filters.isEmpty()) { if (!filters.isEmpty()) {
@@ -146,6 +148,7 @@ public abstract class PrepareServlet<K extends Serializable, C extends Context,
} }
} }
@SuppressWarnings("unchecked")
public void addFilter(Filter<C, R, P> filter, AnyValue conf) { public void addFilter(Filter<C, R, P> filter, AnyValue conf) {
filter._conf = conf; filter._conf = conf;
synchronized (filters) { synchronized (filters) {
@@ -176,6 +179,7 @@ public abstract class PrepareServlet<K extends Serializable, C extends Context,
return false; return false;
} }
@SuppressWarnings("unchecked")
public <T extends Filter<C, R, P>> T removeFilter(Predicate<T> predicate) { public <T extends Filter<C, R, P>> T removeFilter(Predicate<T> predicate) {
if (this.headFilter == null || predicate == null) return null; if (this.headFilter == null || predicate == null) return null;
synchronized (filters) { synchronized (filters) {
@@ -198,10 +202,12 @@ public abstract class PrepareServlet<K extends Serializable, C extends Context,
} }
} }
@SuppressWarnings("unchecked")
public <T extends Filter<C, R, P>> List<T> getFilters() { public <T extends Filter<C, R, P>> List<T> getFilters() {
return (List) new ArrayList<>(filters); return (List) new ArrayList<>(filters);
} }
@SuppressWarnings("unchecked")
public abstract void addServlet(S servlet, Object attachment, AnyValue conf, K... mappings); public abstract void addServlet(S servlet, Object attachment, AnyValue conf, K... mappings);
public final void prepare(final ByteBuffer buffer, final R request, final P response) throws IOException { public final void prepare(final ByteBuffer buffer, final R request, final P response) throws IOException {

View File

@@ -51,6 +51,7 @@ public abstract class Request<C extends Context> {
* 返回值Integer.MIN_VALUE: 帧数据; -1数据不合法 0解析完毕 &gt;0: 需再读取的字节数。 * 返回值Integer.MIN_VALUE: 帧数据; -1数据不合法 0解析完毕 &gt;0: 需再读取的字节数。
* *
* @param buffer ByteBuffer对象 * @param buffer ByteBuffer对象
*
* @return 缺少的字节数 * @return 缺少的字节数
*/ */
protected abstract int readHeader(ByteBuffer buffer); protected abstract int readHeader(ByteBuffer buffer);
@@ -59,6 +60,7 @@ public abstract class Request<C extends Context> {
* 读取buffer并返回读取的有效数据长度 * 读取buffer并返回读取的有效数据长度
* *
* @param buffer ByteBuffer对象 * @param buffer ByteBuffer对象
*
* @return 有效数据长度 * @return 有效数据长度
*/ */
protected abstract int readBody(ByteBuffer buffer); protected abstract int readBody(ByteBuffer buffer);
@@ -82,8 +84,9 @@ public abstract class Request<C extends Context> {
return (T) properties.get(name); return (T) properties.get(name);
} }
@SuppressWarnings("unchecked")
protected <T> T removeProperty(String name) { protected <T> T removeProperty(String name) {
return (T)properties.remove(name); return (T) properties.remove(name);
} }
protected Map<String, Object> getProperties() { protected Map<String, Object> getProperties() {
@@ -100,8 +103,9 @@ public abstract class Request<C extends Context> {
return (T) attributes.get(name); return (T) attributes.get(name);
} }
@SuppressWarnings("unchecked")
public <T> T removeAttribute(String name) { public <T> T removeAttribute(String name) {
return (T)attributes.remove(name); return (T) attributes.remove(name);
} }
public Map<String, Object> getAttributes() { public Map<String, Object> getAttributes() {

View File

@@ -53,6 +53,7 @@ public class HttpContext extends Context {
return responsePool; return responsePool;
} }
@SuppressWarnings("unchecked")
protected <H extends AsyncHandler> Creator<H> loadAsyncHandlerCreator(Class<H> handlerClass) { protected <H extends AsyncHandler> Creator<H> loadAsyncHandlerCreator(Class<H> handlerClass) {
Creator<H> creator = asyncHandlerCreators.get(handlerClass); Creator<H> creator = asyncHandlerCreators.get(handlerClass);
if (creator == null) { if (creator == null) {
@@ -62,6 +63,7 @@ public class HttpContext extends Context {
return creator; return creator;
} }
@SuppressWarnings("unchecked")
private <H extends AsyncHandler> Creator<H> createAsyncHandlerCreator(Class<H> handlerClass) { private <H extends AsyncHandler> Creator<H> createAsyncHandlerCreator(Class<H> handlerClass) {
//生成规则与SncpAsyncHandler.Factory 很类似 //生成规则与SncpAsyncHandler.Factory 很类似
//------------------------------------------------------------- //-------------------------------------------------------------

View File

@@ -186,6 +186,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
} }
@Override @Override
@SuppressWarnings("unchecked")
protected void thenEvent(Servlet servlet) { protected void thenEvent(Servlet servlet) {
this.servlet = servlet; this.servlet = servlet;
} }
@@ -248,6 +249,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
* *
* @return AsyncHandler AsyncHandler * @return AsyncHandler AsyncHandler
*/ */
@SuppressWarnings("unchecked")
public <H extends AsyncHandler> H createAsyncHandler(Class<H> handlerClass) { public <H extends AsyncHandler> H createAsyncHandler(Class<H> handlerClass) {
if (handlerClass == null || handlerClass == AsyncHandler.class) return (H) createAsyncHandler(); if (handlerClass == null || handlerClass == AsyncHandler.class) return (H) createAsyncHandler();
return context.loadAsyncHandlerCreator(handlerClass).create(createAsyncHandler()); return context.loadAsyncHandlerCreator(handlerClass).create(createAsyncHandler());
@@ -358,6 +360,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
* @param convert 指定的JsonConvert * @param convert 指定的JsonConvert
* @param future 输出对象的句柄 * @param future 输出对象的句柄
*/ */
@SuppressWarnings("unchecked")
public void finishJson(final JsonConvert convert, final CompletableFuture future) { public void finishJson(final JsonConvert convert, final CompletableFuture future) {
future.whenComplete((v, e) -> { future.whenComplete((v, e) -> {
if (e != null) { if (e != null) {
@@ -382,6 +385,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
* @param type 指定的类型 * @param type 指定的类型
* @param future 输出对象的句柄 * @param future 输出对象的句柄
*/ */
@SuppressWarnings("unchecked")
public void finishJson(final JsonConvert convert, final Type type, final CompletableFuture future) { public void finishJson(final JsonConvert convert, final Type type, final CompletableFuture future) {
future.whenComplete((v, e) -> { future.whenComplete((v, e) -> {
if (e != null) { if (e != null) {
@@ -416,6 +420,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
* @param convert 指定的JsonConvert * @param convert 指定的JsonConvert
* @param result HttpResult对象 * @param result HttpResult对象
*/ */
@SuppressWarnings("unchecked")
public void finishJson(final JsonConvert convert, final HttpResult result) { public void finishJson(final JsonConvert convert, final HttpResult result) {
if (output == null) { if (output == null) {
finish(""); finish("");

View File

@@ -217,6 +217,7 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
* *
* @return RestServlet * @return RestServlet
*/ */
@SuppressWarnings("unchecked")
public <S extends Service, T extends HttpServlet> T addRestServlet(final ClassLoader classLoader, final String name, final S service, final Class userType, final Class<T> baseServletType, final String prefix) { public <S extends Service, T extends HttpServlet> T addRestServlet(final ClassLoader classLoader, final String name, final S service, final Class userType, final Class<T> baseServletType, final String prefix) {
T servlet = null; T servlet = null;
final boolean sncp = Sncp.isSncpDyn(service); final boolean sncp = Sncp.isSncpDyn(service);

View File

@@ -81,6 +81,7 @@ public class HttpServlet extends Servlet<HttpContext, HttpRequest, HttpResponse>
} }
}; };
@SuppressWarnings("unchecked")
void preInit(HttpContext context, AnyValue config) { void preInit(HttpContext context, AnyValue config) {
String path = _prefix == null ? "" : _prefix; String path = _prefix == null ? "" : _prefix;
WebServlet ws = this.getClass().getAnnotation(WebServlet.class); WebServlet ws = this.getClass().getAnnotation(WebServlet.class);

View File

@@ -112,7 +112,7 @@ public final class WebSocketPacket {
ByteBuffer[] duplicateSendBuffers() { ByteBuffer[] duplicateSendBuffers() {
ByteBuffer[] rs = new ByteBuffer[this.sendBuffers.length]; ByteBuffer[] rs = new ByteBuffer[this.sendBuffers.length];
for (int i = 0; i < this.sendBuffers.length; i++) { for (int i = 0; i < this.sendBuffers.length; i++) {
rs[i] = this.sendBuffers[i].duplicate().asReadOnlyBuffer(); rs[i] = this.sendBuffers[i].duplicate().asReadOnlyBuffer(); //必须使用asReadOnlyBuffer 否则会导致ByteBuffer对应的byte[]被ObjectPool回收两次
} }
return rs; return rs;
} }

View File

@@ -74,6 +74,7 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
* @param <T> 字段依附的类 * @param <T> 字段依附的类
* @param <F> 字段的数据类型 * @param <F> 字段的数据类型
*/ */
@SuppressWarnings("unchecked")
public interface Attribute<T, F> { public interface Attribute<T, F> {
/** /**

View File

@@ -82,6 +82,7 @@ public interface Creator<T> {
String[] value(); String[] value();
@SuppressWarnings("unchecked")
static class CreatorInner { static class CreatorInner {
static class SimpleClassVisitor extends ClassVisitor { static class SimpleClassVisitor extends ClassVisitor {