Skip to content

Commit

Permalink
FIX ISSUE#766,remove OkHttp3 dependency (opengoofy#800)
Browse files Browse the repository at this point in the history
* 1. remove the okhttp dependency, use own implementation instead.
2. add logtracing util.

* remove unnecessary fields

* fix notes

* fix post bug

* fix url encoding
  • Loading branch information
yanrongzhen authored Oct 15, 2022
1 parent 81f90bf commit b74c2db
Show file tree
Hide file tree
Showing 30 changed files with 1,531 additions and 391 deletions.
13 changes: 0 additions & 13 deletions docs/docs/user_docs/other/issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ sidebar_position: 2
- <a href="#控制台线程池管理和线程池实例的区别">控制台线程池管理和线程池实例的区别</a>
- <a href="#示例项目为什么会有跨域请求">示例项目为什么会有跨域请求</a>
- <a href="#更新代码后运行时服务端sql报错">更新代码后运行时服务端SQL报错</a>
- <a href="#okhttp3-call-timeout-方法不存在">okHttp3 call.timeout() 方法不存在</a>
- <a href="#生产环境如何不启用动态线程池">生产环境如何不启用动态线程池</a>
- <a href="#server-端宕机会影响-client-运行么">Server 端宕机会影响 Client 运行么</a>
- <a href="#hippo4j-的发布方式是怎样的-如何选择正确的版本">Hippo4J 的发布方式是怎样的?如何选择正确的版本</a>
Expand Down Expand Up @@ -48,18 +47,6 @@ Hippo4J 按照租户、项目、线程池的维度划分。

> 友情提示:每次执行数据库表或数据变更时,一定要保持提前备份的好习惯。
## okHttp3 call.timeout() 方法不存在

请确保 okHttp3 依赖版本号 >= 3.12.0

```xml
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.12.0</version>
</dependency>
```

## 生产环境如何不启用动态线程池

测试环境已经引入 Hippo4J,暂时不打算上线生产环境。
Expand Down
4 changes: 0 additions & 4 deletions hippo4j-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,5 @@
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,11 @@ public interface JsonFacade {
* @return
*/
<T> List<T> parseArray(String text, Class<T> clazz);

/**
* validate Json.
* @param text
* @return
*/
boolean isJson(String text);
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,13 @@ public class Constants {

public static final String DEFAULT_NAMESPACE_ID = "public";

public static final String ENCODE = "UTF-8";

public static final String NULL = "";

public static final String UP = "UP";

public static final String ENCODE = "UTF-8";
public static final String CONTENT_TYPE = "Content-Type";

public static final int CONFIG_LONG_POLL_TIMEOUT = 30000;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package cn.hippo4j.common.constant;

/**
* header constants.
*/
public interface HttpHeaderConsts {

String CLIENT_VERSION_HEADER = "Client-Version";
String USER_AGENT_HEADER = "User-Agent";
String REQUEST_SOURCE_HEADER = "Request-Source";
String CONTENT_TYPE = "Content-Type";
String CONTENT_LENGTH = "Content-Length";
String ACCEPT_CHARSET = "Accept-Charset";
String ACCEPT_ENCODING = "Accept-Encoding";
String CONTENT_ENCODING = "Content-Encoding";
String CONNECTION = "Requester";
String REQUEST_ID = "RequestId";
String REQUEST_MODULE = "Request-Module";

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package cn.hippo4j.common.constant;

import cn.hippo4j.common.toolkit.StringUtil;

/**
* Http Media types.
*
* @author Rongzhen Yan
*/
public final class HttpMediaType {

public static final String APPLICATION_ATOM_XML = "application/atom+xml";

public static final String APPLICATION_FORM_URLENCODED = "application/x-www-form-urlencoded;charset=UTF-8";

public static final String APPLICATION_OCTET_STREAM = "application/octet-stream";

public static final String APPLICATION_SVG_XML = "application/svg+xml";

public static final String APPLICATION_XHTML_XML = "application/xhtml+xml";

public static final String APPLICATION_XML = "application/xml;charset=UTF-8";

public static final String APPLICATION_JSON = "application/json;charset=UTF-8";

public static final String MULTIPART_FORM_DATA = "multipart/form-data;charset=UTF-8";

public static final String TEXT_HTML = "text/html;charset=UTF-8";

public static final String TEXT_PLAIN = "text/plain;charset=UTF-8";

private HttpMediaType(String type, String charset) {
this.type = type;
this.charset = charset;
}

/**
* content type.
*/
private final String type;

/**
* content type charset.
*/
private final String charset;

/**
* Parse the given String contentType into a {@code MediaType} object.
*
* @param contentType mediaType
* @return MediaType
*/
public static HttpMediaType valueOf(String contentType) {
if (StringUtil.isEmpty(contentType)) {
throw new IllegalArgumentException("MediaType must not be empty");
}
String[] values = contentType.split(";");
String charset = Constants.ENCODE;
for (String value : values) {
if (value.startsWith("charset=")) {
charset = value.substring("charset=".length());
}
}
return new HttpMediaType(values[0], charset);
}

/**
* Use the given contentType and charset to assemble into a {@code MediaType} object.
*
* @param contentType contentType
* @param charset charset
* @return MediaType
*/
public static HttpMediaType valueOf(String contentType, String charset) {
if (StringUtil.isEmpty(contentType)) {
throw new IllegalArgumentException("MediaType must not be empty");
}
String[] values = contentType.split(";");
return new HttpMediaType(values[0], StringUtil.isEmpty(charset) ? Constants.ENCODE : charset);
}

public String getType() {
return type;
}

public String getCharset() {
return charset;
}

@Override
public String toString() {
return type + ";charset=" + charset;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package cn.hippo4j.common.constant;

/**
* Http method constants.
*
* @author Rongzhen Yan
*/
public class HttpMethod {

public static final String GET = "GET";

public static final String HEAD = "HEAD";

public static final String POST = "POST";

public static final String PUT = "PUT";

public static final String PATCH = "PATCH";

public static final String DELETE = "DELETE";

public static final String OPTIONS = "OPTIONS";

public static final String TRACE = "TRACE";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package cn.hippo4j.common.constant;

/**
* Http状态码常量
* @author Rongzhen Yan
*/
public interface HttpResponseCode {

int SC_CONTINUE = 100;
int SC_SWITCHING_PROTOCOLS = 101;
int SC_OK = 200;
int SC_CREATED = 201;
int SC_ACCEPTED = 202;
int SC_NON_AUTHORITATIVE_INFORMATION = 203;
int SC_NO_CONTENT = 204;
int SC_RESET_CONTENT = 205;
int SC_PARTIAL_CONTENT = 206;
int SC_MULTIPLE_CHOICES = 300;
int SC_MOVED_PERMANENTLY = 301;
int SC_MOVED_TEMPORARILY = 302;
int SC_FOUND = 302;
int SC_SEE_OTHER = 303;
int SC_NOT_MODIFIED = 304;
int SC_USE_PROXY = 305;
int SC_TEMPORARY_REDIRECT = 307;
int SC_BAD_REQUEST = 400;
int SC_UNAUTHORIZED = 401;
int SC_PAYMENT_REQUIRED = 402;
int SC_FORBIDDEN = 403;
int SC_NOT_FOUND = 404;
int SC_METHOD_NOT_ALLOWED = 405;
int SC_NOT_ACCEPTABLE = 406;
int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
int SC_REQUEST_TIMEOUT = 408;
int SC_CONFLICT = 409;
int SC_GONE = 410;
int SC_LENGTH_REQUIRED = 411;
int SC_PRECONDITION_FAILED = 412;
int SC_REQUEST_ENTITY_TOO_LARGE = 413;
int SC_REQUEST_URI_TOO_LONG = 414;
int SC_UNSUPPORTED_MEDIA_TYPE = 415;
int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
int SC_EXPECTATION_FAILED = 417;
int SC_INTERNAL_SERVER_ERROR = 500;
int SC_NOT_IMPLEMENTED = 501;
int SC_BAD_GATEWAY = 502;
int SC_SERVICE_UNAVAILABLE = 503;
int SC_GATEWAY_TIMEOUT = 504;
int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
}
Loading

0 comments on commit b74c2db

Please sign in to comment.