diff --git a/cache/tomcat.css b/cache/tomcat.css
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/lib/commons-codec-1.9.jar b/lib/commons-codec-1.9.jar
deleted file mode 100755
index ef35f1c50d7c41278bc31f4b9fcfc8fbd708d55d..0000000000000000000000000000000000000000
Binary files a/lib/commons-codec-1.9.jar and /dev/null differ
diff --git a/lib/commons-logging-1.2.jar b/lib/commons-logging-1.2.jar
deleted file mode 100755
index 93a3b9f6db406c84e270e19b9a5e70f2e27ca513..0000000000000000000000000000000000000000
Binary files a/lib/commons-logging-1.2.jar and /dev/null differ
diff --git a/lib/commons-pool-1.6.jar b/lib/commons-pool-1.6.jar
deleted file mode 100755
index 72ca75a3e6eca2158a8c607b18572f3bd87bf24e..0000000000000000000000000000000000000000
Binary files a/lib/commons-pool-1.6.jar and /dev/null differ
diff --git a/lib/commons-pool2-2.3.jar b/lib/commons-pool2-2.3.jar
deleted file mode 100755
index 5219e1cc231c92d200246ee3a548ec1cbb6e4f69..0000000000000000000000000000000000000000
Binary files a/lib/commons-pool2-2.3.jar and /dev/null differ
diff --git a/lib/fastjson-1.2.8.jar b/lib/fastjson-1.2.8.jar
deleted file mode 100755
index 6ab160bac834201356e51d51a3f09229c169894f..0000000000000000000000000000000000000000
Binary files a/lib/fastjson-1.2.8.jar and /dev/null differ
diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar
deleted file mode 100755
index 9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a..0000000000000000000000000000000000000000
Binary files a/lib/hamcrest-core-1.3.jar and /dev/null differ
diff --git a/lib/httpclient-4.5.1.jar b/lib/httpclient-4.5.1.jar
deleted file mode 100755
index b9c0c1c25022117fc273a4ee1453b2c90893bf08..0000000000000000000000000000000000000000
Binary files a/lib/httpclient-4.5.1.jar and /dev/null differ
diff --git a/lib/httpcore-4.4.3.jar b/lib/httpcore-4.4.3.jar
deleted file mode 100755
index 9f91ef663e25f0a270a654e19b11fc66735de3bb..0000000000000000000000000000000000000000
Binary files a/lib/httpcore-4.4.3.jar and /dev/null differ
diff --git a/lib/httpmime-4.5.1.jar b/lib/httpmime-4.5.1.jar
deleted file mode 100755
index 53a6420129a7961477a15f18de546c4fd5cdd983..0000000000000000000000000000000000000000
Binary files a/lib/httpmime-4.5.1.jar and /dev/null differ
diff --git a/lib/jedis-2.7.2.jar b/lib/jedis-2.7.2.jar
deleted file mode 100755
index fcf2a5868f193a34313d301a416707567e95675f..0000000000000000000000000000000000000000
Binary files a/lib/jedis-2.7.2.jar and /dev/null differ
diff --git a/lib/jnotify-0.94.jar b/lib/jnotify-0.94.jar
deleted file mode 100644
index e17efadf4febd0d93fc8cf61372e92dbb798b5f7..0000000000000000000000000000000000000000
Binary files a/lib/jnotify-0.94.jar and /dev/null differ
diff --git a/lib/junit-4.11.jar b/lib/junit-4.11.jar
deleted file mode 100755
index aaf74448492932e95902b40a70c7a4da5bad4744..0000000000000000000000000000000000000000
Binary files a/lib/junit-4.11.jar and /dev/null differ
diff --git a/lib/log4j-1.2.12.jar b/lib/log4j-1.2.12.jar
deleted file mode 100755
index 9b5a720088596bf7baed37a28423ea8cca210f84..0000000000000000000000000000000000000000
Binary files a/lib/log4j-1.2.12.jar and /dev/null differ
diff --git a/lib/netty-all-4.1.0.Beta5.jar b/lib/netty-all-4.1.0.Beta5.jar
deleted file mode 100755
index 2797e16ece0746b67978312a84505e4573d0f52c..0000000000000000000000000000000000000000
Binary files a/lib/netty-all-4.1.0.Beta5.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
index 312f45eb484626be3f0c1860d78bbaff776fef4d..bb9a1fb8b727f8e9bfea8c86f23e47963120c8e9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
io.netty
netty-all
- 4.1.0.Beta5
+ 4.1.6.Final
org.apache.httpcomponents
@@ -52,6 +52,21 @@
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.0
+
+ 1.7
+ 1.7
+
+
+
+
+
+
diff --git a/src/main/java/org/code4j/jproxy/client/ProxyClient.java b/src/main/java/org/code4j/jproxy/client/ProxyClient.java
index 95260326a6067e512760cc4153fa23a64316faa6..ada9e219216c38e526390acf466437f681fd746e 100644
--- a/src/main/java/org/code4j/jproxy/client/ProxyClient.java
+++ b/src/main/java/org/code4j/jproxy/client/ProxyClient.java
@@ -8,11 +8,11 @@ import io.netty.handler.codec.http.HttpHeaders;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.HttpMultipartMode;
@@ -22,6 +22,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
+import org.apache.log4j.Logger;
import org.code4j.jproxy.util.DiskUtil;
import java.io.IOException;
@@ -30,8 +31,6 @@ import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
/**
* Description :
@@ -41,6 +40,7 @@ import java.util.concurrent.Executors;
public class ProxyClient{
+ private static Logger log = Logger.getLogger(ProxyClient.class);
CloseableHttpClient httpclient = HttpClients.createDefault();
CloseableHttpResponse response;
@@ -79,7 +79,7 @@ public class ProxyClient{
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httpGet);
- System.out.println(httpGet.getURI()+" response code : "+response.getStatusLine().getStatusCode());
+ log.info(httpGet.getURI() + " response code : " + response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
@@ -101,7 +101,7 @@ public class ProxyClient{
setHeader(httpGet,headers);
try {
response = httpclient.execute(httpGet);
- System.out.println(" response code : "+response.getStatusLine().getStatusCode());
+ log.info(" response code : " + response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
@@ -141,20 +141,20 @@ public class ProxyClient{
return builder.build();
}
private void setHeader(HttpRequestBase httpRequest,HttpHeaders headers){
-// System.out.println("REQUEST header ---------------");
+// log.info("REQUEST header ---------------");
for (CharSequence name:headers.names()){
String n = name.toString();
boolean exclusive = n.equalsIgnoreCase("Content-Length")||n.equalsIgnoreCase("Referer")
||n.equalsIgnoreCase("If-Modified-Since")||n.equalsIgnoreCase("If-None-Match");
if ("Host".equalsIgnoreCase(name.toString())){
httpRequest.setHeader(name.toString(), HOST);
-// System.out.println(name.toString() + ":" + headers.get(name).toString());
+// log.info(name.toString() + ":" + headers.get(name).toString());
} else if (!exclusive){
httpRequest.setHeader(name.toString(), headers.get(name).toString());
-// System.out.println(name.toString() + ":" + headers.get(name).toString());
+// log.info(name.toString() + ":" + headers.get(name).toString());
}
}
-// System.out.println("END header ---------------");
+// log.info("END header ---------------");
}
public CloseableHttpResponse postJsonRequest(String json,HttpHeaders headers){
@@ -165,7 +165,7 @@ public class ProxyClient{
s = new StringEntity(json);
httpPost.setEntity(s);
response = httpclient.execute(httpPost);
- System.out.println(" response code : " + response.getStatusLine().getStatusCode());
+ log.info(" response code : " + response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
@@ -178,20 +178,20 @@ public class ProxyClient{
try {
httpPost.setEntity(setMultipartEntity(param));
response = httpclient.execute(httpPost);
- System.out.println(" response code : " + response.getStatusLine().getStatusCode());
+ log.info(" response code : " + response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
- public CloseableHttpResponse postEntityRequest(Map param,HttpHeaders headers){
+ public CloseableHttpResponse postEntityRequest(byte[] content,HttpHeaders headers){
setHeader(httpPost,headers);
CloseableHttpResponse response = null;
try {
- httpPost.setEntity(new UrlEncodedFormEntity(setRequestData(param),"UTF-8"));
+ httpPost.setEntity(new ByteArrayEntity(content));
response = httpclient.execute(httpPost);
- System.out.println(" response code : " + response.getStatusLine().getStatusCode());
+ log.info(" response code : " + response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/src/main/java/org/code4j/jproxy/crypt/EncryptUtil.java b/src/main/java/org/code4j/jproxy/crypt/EncryptUtil.java
index 1a88306907b8c296b2cafc4bf991b4320cf6194d..ea70d24e19cf831e8f38759c2ea0f956dbe028ba 100644
--- a/src/main/java/org/code4j/jproxy/crypt/EncryptUtil.java
+++ b/src/main/java/org/code4j/jproxy/crypt/EncryptUtil.java
@@ -4,6 +4,8 @@ package org.code4j.jproxy.crypt;/**
* 下午2:25
*/
+import org.apache.log4j.Logger;
+
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -15,6 +17,8 @@ import java.security.NoSuchAlgorithmException;
public class EncryptUtil {
+ private static Logger log = Logger.getLogger(EncryptUtil.class);
+
public static final String SHA1 = "SHA-1";
public static final String SHA256 = "SHA-256";
public static final String MD5 = "MD5";
@@ -33,7 +37,7 @@ public class EncryptUtil {
strDes=bytes2Hex(md.digest()); //to HexString
}
catch (NoSuchAlgorithmException e) {
- System.out.println("Invalid algorithm.");
+ log.info("Invalid algorithm.");
return null;
}
return strDes;
diff --git a/src/main/java/org/code4j/jproxy/dao/RequestDataDao.java b/src/main/java/org/code4j/jproxy/dao/RequestDataDao.java
index ce96c947960f2ad5cb07a0e0ca02469e5f461969..97ab72512ca4162d7a2e924b7a15c88f43dccb5e 100644
--- a/src/main/java/org/code4j/jproxy/dao/RequestDataDao.java
+++ b/src/main/java/org/code4j/jproxy/dao/RequestDataDao.java
@@ -4,6 +4,7 @@ package org.code4j.jproxy.dao;/**
* 下午8:42
*/
+import org.apache.log4j.Logger;
import org.code4j.jproxy.crypt.EncryptUtil;
import org.code4j.jproxy.util.JedisUtil;
@@ -15,10 +16,12 @@ import org.code4j.jproxy.util.JedisUtil;
public class RequestDataDao {
+ private static Logger log = Logger.getLogger(RequestDataDao.class);
+
public void save(String url,String param,String data){
String key = EncryptUtil.hash(url+param,EncryptUtil.SHA1);
JedisUtil.set(key,data);
- System.out.println("保存完,key="+key+" , value="+data);
+ log.info("保存完,key=" + key + " , value=" + data);
}
private boolean isHit(String key){
diff --git a/src/main/java/org/code4j/jproxy/handler/http/GetRequestHandler.java b/src/main/java/org/code4j/jproxy/handler/http/GetRequestHandler.java
index 1007ac955a95bc2adb440dcf3aacf1de822a45b0..939062ea0037b8adf3249c92bb6ae7b944bcd1af 100644
--- a/src/main/java/org/code4j/jproxy/handler/http/GetRequestHandler.java
+++ b/src/main/java/org/code4j/jproxy/handler/http/GetRequestHandler.java
@@ -11,6 +11,7 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.codec.http.*;
import org.apache.http.Header;
import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.log4j.Logger;
import org.code4j.jproxy.client.ProxyClient;
import org.code4j.jproxy.dao.RequestDataDao;
import org.code4j.jproxy.server.IPSelector;
@@ -18,8 +19,7 @@ import org.code4j.jproxy.util.WebUtil;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.*;
/**
* Description : CSSFilterHandler
@@ -28,16 +28,19 @@ import java.util.concurrent.Executors;
*/
public class GetRequestHandler extends ChannelInboundHandlerAdapter {
+
+ private static Logger log = Logger.getLogger(GetRequestHandler.class);
+
private InetSocketAddress address;
private RequestDataDao dao = new RequestDataDao();
- private ExecutorService threadPool = Executors.newCachedThreadPool();
+ private static ExecutorService threadPool = new ThreadPoolExecutor(5, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue());
/**
* 每次请求都重新获取一次地址
*/
public void fetchInetAddress(){
this.address = IPSelector.weight();
- System.out.println("新获取的地址--> "+address.getHostName()+":"+address.getPort());
+ log.info("新获取的地址--> " + address.getHostName() + ":" + address.getPort());
}
@Override
@@ -56,7 +59,7 @@ public class GetRequestHandler extends ChannelInboundHandlerAdapter {
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
- System.out.println("CSS 解析异常");
+ log.info("CSS 解析异常");
cause.printStackTrace();
}
@@ -64,12 +67,12 @@ public class GetRequestHandler extends ChannelInboundHandlerAdapter {
ByteBuf byteBuf = Unpooled.wrappedBuffer(contents, 0, contents.length);
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
HttpResponseStatus.OK,byteBuf);
- System.out.println("response header ---------------");
+ log.info("response header ---------------");
for (Header header:headers){
response.headers().set(header.getName(),header.getValue());
- System.out.println(header.getName()+"::"+header.getValue());
+ log.info(header.getName() + "::" + header.getValue());
}
- System.out.println("end header ---------------");
+ log.info("end header ---------------");
ctx.channel().writeAndFlush(response);
ctx.close();
}
@@ -103,7 +106,7 @@ public class GetRequestHandler extends ChannelInboundHandlerAdapter {
fetchInetAddress();
ProxyClient client = new ProxyClient(address, WebUtil.ROOT.equals(request.uri())?"":request.uri());
if (isJSON){
- System.out.println("GET 业务请求");
+ log.info("GET 业务请求");
//redis缓存
String cache = dao.get(request.uri(),"");
if (cache == null ||cache.isEmpty()){
@@ -123,7 +126,7 @@ public class GetRequestHandler extends ChannelInboundHandlerAdapter {
response(ctx, bytes, response.getAllHeaders());
}
}else{
- System.out.println("非GET请求或JSON类型 "+request.uri());
+ log.info("非GET请求或JSON类型 " + request.uri());
ctx.fireChannelRead(request);
}
}catch (Exception e){
diff --git a/src/main/java/org/code4j/jproxy/handler/http/ImageHandler.java b/src/main/java/org/code4j/jproxy/handler/http/ImageHandler.java
index 027d5555fb9a603097772d86f35020db036d9be0..fed3f3ea406314bc85f1608b3fce1b8f29055c1d 100644
--- a/src/main/java/org/code4j/jproxy/handler/http/ImageHandler.java
+++ b/src/main/java/org/code4j/jproxy/handler/http/ImageHandler.java
@@ -11,14 +11,14 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.codec.http.*;
import org.apache.http.Header;
import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.log4j.Logger;
import org.code4j.jproxy.client.ProxyClient;
import org.code4j.jproxy.server.IPSelector;
import org.code4j.jproxy.util.WebUtil;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.*;
import java.util.regex.Pattern;
/**
@@ -28,15 +28,16 @@ import java.util.regex.Pattern;
*/
public class ImageHandler extends ChannelInboundHandlerAdapter{
+ private static Logger log = Logger.getLogger(ImageHandler.class);
private InetSocketAddress address;
- private ExecutorService threadPool = Executors.newCachedThreadPool();
+ private static ExecutorService threadPool = new ThreadPoolExecutor(0, 5, 30, TimeUnit.SECONDS, new LinkedBlockingQueue());
/**
* 每次请求都重新获取一次地址
*/
public void fetchInetAddress(){
this.address = IPSelector.weight();
- System.out.println("新获取的地址--> "+address.getHostName()+":"+address.getPort());
+ log.info("新获取的地址--> " + address.getHostName() + ":" + address.getPort());
}
@Override
@@ -63,12 +64,12 @@ public class ImageHandler extends ChannelInboundHandlerAdapter{
ByteBuf byteBuf = Unpooled.wrappedBuffer(contents, 0, contents.length);
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
HttpResponseStatus.OK,byteBuf);
- System.out.println("response header ---------------");
+ log.info("response header ---------------");
for (Header header:headers){
response.headers().set(header.getName(),header.getValue());
- System.out.println(header.getName()+"::"+header.getValue());
+ log.info(header.getName() + "::" + header.getValue());
}
- System.out.println("end header ---------------");
+ log.info("end header ---------------");
ctx.channel().writeAndFlush(response);
ctx.close();
}
@@ -96,7 +97,7 @@ public class ImageHandler extends ChannelInboundHandlerAdapter{
fetchInetAddress();
ProxyClient client = new ProxyClient(address,WebUtil.ROOT.equals(request.uri())?"":request.uri());
//在这里强转类型,如果使用了聚合器,就会被阻塞
- System.out.println("读取到图片 " + request.uri());
+ log.info("读取到图片 " + request.uri());
response = client.fetchImage();
bytes = client.getResponseBytes(response);
response(ctx, bytes, response.getAllHeaders());
diff --git a/src/main/java/org/code4j/jproxy/handler/http/PostRequestHandler.java b/src/main/java/org/code4j/jproxy/handler/http/PostRequestHandler.java
index 54fec68ac43c1289a5bc24c1b44daeb1a9bf4d9f..65ef02c6ec12a95b0b01658a8e050e7024228eb6 100644
--- a/src/main/java/org/code4j/jproxy/handler/http/PostRequestHandler.java
+++ b/src/main/java/org/code4j/jproxy/handler/http/PostRequestHandler.java
@@ -1,7 +1,7 @@
package org.code4j.jproxy.handler.http;/**
- * Description :
+ * Description :
* Created by YangZH on 16-6-3
- * 下午10:23
+ * 下午10:23
*/
import io.netty.buffer.ByteBuf;
@@ -16,6 +16,7 @@ import io.netty.handler.codec.http.multipart.MemoryAttribute;
import io.netty.util.CharsetUtil;
import org.apache.http.Header;
import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.log4j.Logger;
import org.code4j.jproxy.client.ProxyClient;
import org.code4j.jproxy.dao.RequestDataDao;
import org.code4j.jproxy.server.IPSelector;
@@ -24,9 +25,9 @@ import org.code4j.jproxy.util.WebUtil;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
+import java.nio.charset.Charset;
import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.*;
/**
* Description :
@@ -35,26 +36,28 @@ import java.util.concurrent.Executors;
*/
public class PostRequestHandler extends ChannelInboundHandlerAdapter {
+ private static Logger log = Logger.getLogger(PostRequestHandler.class);
private InetSocketAddress address;
private RequestDataDao dao = new RequestDataDao();
- private ExecutorService threadPool = Executors.newCachedThreadPool();
+ private static ExecutorService threadPool = new ThreadPoolExecutor(5, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue());
+
/**
* 每次请求都重新获取一次地址
*/
- public void fetchInetAddress(){
+ public void fetchInetAddress() {
this.address = IPSelector.weight();
- System.out.println("新获取的地址--> "+address.getHostName()+":"+address.getPort());
+ log.info("新获取的地址--> " + address.getHostName() + ":" + address.getPort());
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
- messageReceived(ctx,msg);
+ messageReceived(ctx, msg);
}
// @Override
protected void messageReceived(ChannelHandlerContext ctx, Object msg) throws Exception {
- threadPool.submit(new Task(ctx,msg));
+ threadPool.submit(new Task(ctx, msg));
}
@Override
@@ -62,51 +65,52 @@ public class PostRequestHandler extends ChannelInboundHandlerAdapter {
super.exceptionCaught(ctx, cause);
}
- private void response(ChannelHandlerContext ctx,byte[] contents,Header[] headers) throws UnsupportedEncodingException {
+ private void response(ChannelHandlerContext ctx, byte[] contents, Header[] headers) throws UnsupportedEncodingException {
ByteBuf byteBuf = Unpooled.wrappedBuffer(contents, 0, contents.length);
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
- HttpResponseStatus.OK,byteBuf);
- System.out.println("response header ---------------");
- for (Header header:headers){
- response.headers().set(header.getName(),header.getValue());
- System.out.println(header.getName()+"::"+header.getValue());
+ HttpResponseStatus.OK, byteBuf);
+ log.info("response header ---------------");
+ for (Header header : headers) {
+ response.headers().set(header.getName(), header.getValue());
+ log.info(header.getName() + "::" + header.getValue());
}
- System.out.println("end header ---------------");
+ log.info("end header ---------------");
ctx.channel().writeAndFlush(response);
ctx.close();
}
- private void response(ChannelHandlerContext ctx,byte[] contents) throws UnsupportedEncodingException {
+
+ private void response(ChannelHandlerContext ctx, byte[] contents) throws UnsupportedEncodingException {
ByteBuf byteBuf = Unpooled.wrappedBuffer(contents, 0, contents.length);
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
- HttpResponseStatus.OK,byteBuf);
- System.out.println("没有请求头,回写数据");
+ HttpResponseStatus.OK, byteBuf);
+ log.info("没有请求头,回写数据");
ctx.channel().writeAndFlush(response);
ctx.close();
}
- class Task implements Runnable{
+ class Task implements Runnable {
Object msg;
ChannelHandlerContext ctx;
- public Task( ChannelHandlerContext ctx,Object msg) {
+ public Task(ChannelHandlerContext ctx, Object msg) {
this.msg = msg;
this.ctx = ctx;
}
@Override
public void run() {
- HttpRequest request = (HttpRequest)msg;
+ HttpRequest request = (HttpRequest) msg;
try {
- if (request.method().equals(HttpMethod.POST)){
+ if (request.method().equals(HttpMethod.POST)) {
fetchInetAddress();
CloseableHttpResponse response = null;
- ProxyClient client = new ProxyClient(address, WebUtil.ROOT.equals(request.uri())?"":request.uri());
+ ProxyClient client = new ProxyClient(address, WebUtil.ROOT.equals(request.uri()) ? "" : request.uri());
byte[] bytes = null;
- System.out.println("POST 请求");
+ log.info("POST 请求");
HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request);
- if (decoder.isMultipart()){
- StringBuffer sb = new StringBuffer();
- try{
+ if (decoder.isMultipart()) {
+ StringBuilder sb = new StringBuilder();
+ try {
String paramstr = null;
List postList = decoder.getBodyHttpDatas();
// 读取从客户端传过来的参数
@@ -119,64 +123,66 @@ public class PostRequestHandler extends ChannelInboundHandlerAdapter {
attribute.setCharset(CharsetUtil.UTF_8);
value = attribute.getValue();
sb.append(name).append("=").append(value);
- if (!(index == postList.size()-1)){
+ if (!(index == postList.size() - 1)) {
sb.append("&");
}
}
}
paramstr = sb.toString();
//redis先查询,命中就不请求了。
- String cache = dao.get(request.uri(),paramstr);
- if (cache == null ||cache.isEmpty()){
+ String cache = dao.get(request.uri(), paramstr);
+ if (cache == null || cache.isEmpty()) {
response = client.postMultipartEntityRequest(JSONUtil.requestParam(paramstr), request.headers());
String responseStr = client.getResponse(response);
bytes = responseStr.getBytes();
response(ctx, bytes, response.getAllHeaders());
- }else{
+ } else {
response(ctx, cache.getBytes());
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
- }else if (request instanceof HttpContent) {
+ } else if (request instanceof HttpContent) {
HttpContent httpContent = (HttpContent) request;
- ByteBuf content = httpContent.content();
- String message = content.toString(io.netty.util.CharsetUtil.UTF_8);
- if (JSONUtil.isJson(message)){
- System.out.println("json 数据");
- String cache = dao.get(request.uri(),message);
- if (cache == null ||cache.isEmpty()){
- System.out.println("cache并没有命中!");
+ ByteBuf contentBuf = httpContent.content();
+ byte[] content = new byte[contentBuf.readableBytes()];
+ contentBuf.readBytes(content);
+ String message = new String(content, Charset.forName("utf-8"));
+ if (JSONUtil.isJson(message)) {
+ log.info("json 数据");
+ String cache = dao.get(request.uri(), message);
+ if (cache == null || cache.isEmpty()) {
+ log.info("cache并没有命中!");
response = client.postJsonRequest(message, request.headers());
String responseStr = client.getResponse(response);
- dao.save(request.uri(),message,responseStr);
+ dao.save(request.uri(), message, responseStr);
bytes = responseStr.getBytes();
response(ctx, bytes, response.getAllHeaders());
- }else{
- System.out.println("cache命中!");
+ } else {
+ log.info("cache命中!");
response(ctx, cache.getBytes());
}
- }else{
- System.out.println("key-value 数据");
- String cache = dao.get(request.uri(),message);
- if (cache == null ||cache.isEmpty()){
- System.out.println("cache并没有命中!");
- response = client.postEntityRequest(JSONUtil.requestParam(message), request.headers());
+ } else {
+ log.info("key-value 数据");
+ String cache = dao.get(request.uri(), message);
+ if (cache == null || cache.isEmpty()) {
+ log.info("cache并没有命中!");
+ response = client.postEntityRequest(content, request.headers());
String responseStr = client.getResponse(response);
- dao.save(request.uri(),message,responseStr);
+ dao.save(request.uri(), message, responseStr);
bytes = responseStr.getBytes();
response(ctx, bytes, response.getAllHeaders());
- }else {
- System.out.println("cache命中!");
+ } else {
+ log.info("cache命中!");
response(ctx, cache.getBytes());
}
}
}
- }else{
- System.out.println("不是post请求");
+ } else {
+ log.info("不是post请求");
}
- }catch (Exception e){
- e.printStackTrace();
+ } catch (Exception e) {
+ log.error(e);
}
}
}
diff --git a/src/main/java/org/code4j/jproxy/http/service/BasicHttpHandler.java b/src/main/java/org/code4j/jproxy/http/service/BasicHttpHandler.java
index dbce3f37e14ef774152aa2ff14fbdd082ec86f3e..30d3b3c39a458a6b1b55ab92b7242b2e8fa051e1 100644
--- a/src/main/java/org/code4j/jproxy/http/service/BasicHttpHandler.java
+++ b/src/main/java/org/code4j/jproxy/http/service/BasicHttpHandler.java
@@ -1,101 +1,101 @@
-package org.code4j.jproxy.http.service;
-
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.handler.codec.http.FullHttpRequest;
-import io.netty.handler.codec.http.FullHttpResponse;
-import io.netty.handler.codec.http.HttpResponseStatus;
-import org.apache.log4j.Logger;
-import org.code4j.codecat.api.response.factory.HttpResponseFactory;
-import org.code4j.codecat.commons.constants.Const;
-import org.code4j.codecat.commons.util.JedisUtil;
-
-import java.io.File;
-
-/**
- * Description :
- * Created by code4j on 16-6-16
- * 下午7:46
- *
- * 这个类继承了netty的业务handler,封装这个类是避免用户直接接触netty,
- * 转而用codecat的api使用服务更加“简单” ( <— <— )| 但愿我能封装的好点
- */
-
-public abstract class BasicHttpHandler extends ChannelInboundHandlerAdapter{
-
- private Logger logger = Logger.getLogger(BasicHttpHandler.class);
-
- /**
- * 提供给用户使用的业务方法
- * @param msg
- */
- public abstract Object service(Object msg);
-
- @Override
- public final void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
- FullHttpRequest request = (FullHttpRequest) msg;
- String uri = getURI(request.uri());
- if (request.uri().equals(File.separator)){
- String result = String.valueOf(service(request.uri()));
- responseTo(ctx, result, HttpResponseStatus.OK);
- }
- String root = getRoot(request.uri());
- logger.info("hash key? "+JedisUtil.hasKey(root));
- if (!JedisUtil.hasKey(root)){
- responseTo(ctx, Const.NOTFOUNG+"no suitable jar!!
", HttpResponseStatus.NOT_FOUND);
- }
- if (this.getClass().isAnnotationPresent(Path.class)){
- Path path = this.getClass().getAnnotation(Path.class);
- System.out.println();
- if (uri.equals(path.value())){
- String result = String.valueOf(service(request.uri()));
- responseTo(ctx, result, HttpResponseStatus.OK);
- }else if (ctx.pipeline().last() == this){
- responseTo(ctx, Const.NOTFOUNG+"no suitable app!!
", HttpResponseStatus.NOT_FOUND);
- }else{
- ctx.fireChannelRead(msg);
- }
- }else{
- ctx.fireChannelRead(msg);
- }
- }
-
- @Override
- public final void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
- ctx.flush();
- ctx.close();
- }
-
- @Override
- public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
- ctx.writeAndFlush(HttpResponseFactory.getResponse(
- ""+cause.getMessage()+"
", HttpResponseStatus.INTERNAL_SERVER_ERROR));
- ctx.close();
- cause.printStackTrace();
- }
-
-
- private void responseTo(ChannelHandlerContext ctx,String content, HttpResponseStatus status){
- FullHttpResponse response = HttpResponseFactory.getResponse(content, status);
- ctx.writeAndFlush(response);
- ctx.close();
- }
-
- private String getURI(String url){
- if (url.equals(File.separator)){
- return File.separator;
- }
- String[] path_segement = url.split(File.separator);
- String root_path = path_segement[1];
- return url.substring(root_path.lastIndexOf(root_path) + root_path.length()+1);
- }
-
-
- private String getRoot(String url){
- if (url == null||url.equals(File.separator)||url.isEmpty()){
- return "/";
- }
- String[] path_segement = url.split(File.separator);
- return path_segement[1];
- }
-}
+//package org.code4j.jproxy.http.service;
+//
+//import io.netty.channel.ChannelHandlerContext;
+//import io.netty.channel.ChannelInboundHandlerAdapter;
+//import io.netty.handler.codec.http.FullHttpRequest;
+//import io.netty.handler.codec.http.FullHttpResponse;
+//import io.netty.handler.codec.http.HttpResponseStatus;
+//import org.apache.log4j.Logger;
+//import org.code4j.codecat.api.response.factory.HttpResponseFactory;
+//import org.code4j.codecat.commons.constants.Const;
+//import org.code4j.codecat.commons.util.JedisUtil;
+//
+//import java.io.File;
+//
+///**
+// * Description :
+// * Created by code4j on 16-6-16
+// * 下午7:46
+// *
+// * 这个类继承了netty的业务handler,封装这个类是避免用户直接接触netty,
+// * 转而用codecat的api使用服务更加“简单” ( <— <— )| 但愿我能封装的好点
+// */
+//
+//public abstract class BasicHttpHandler extends ChannelInboundHandlerAdapter{
+//
+// private Logger logger = Logger.getLogger(BasicHttpHandler.class);
+//
+// /**
+// * 提供给用户使用的业务方法
+// * @param msg
+// */
+// public abstract Object service(Object msg);
+//
+// @Override
+// public final void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+// FullHttpRequest request = (FullHttpRequest) msg;
+// String uri = getURI(request.uri());
+// if (request.uri().equals(File.separator)){
+// String result = String.valueOf(service(request.uri()));
+// responseTo(ctx, result, HttpResponseStatus.OK);
+// }
+// String root = getRoot(request.uri());
+// logger.info("hash key? "+JedisUtil.hasKey(root));
+// if (!JedisUtil.hasKey(root)){
+// responseTo(ctx, Const.NOTFOUNG+"no suitable jar!!
", HttpResponseStatus.NOT_FOUND);
+// }
+// if (this.getClass().isAnnotationPresent(Path.class)){
+// Path path = this.getClass().getAnnotation(Path.class);
+// log.info();
+// if (uri.equals(path.value())){
+// String result = String.valueOf(service(request.uri()));
+// responseTo(ctx, result, HttpResponseStatus.OK);
+// }else if (ctx.pipeline().last() == this){
+// responseTo(ctx, Const.NOTFOUNG+"no suitable app!!
", HttpResponseStatus.NOT_FOUND);
+// }else{
+// ctx.fireChannelRead(msg);
+// }
+// }else{
+// ctx.fireChannelRead(msg);
+// }
+// }
+//
+// @Override
+// public final void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
+// ctx.flush();
+// ctx.close();
+// }
+//
+// @Override
+// public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+// ctx.writeAndFlush(HttpResponseFactory.getResponse(
+// ""+cause.getMessage()+"
", HttpResponseStatus.INTERNAL_SERVER_ERROR));
+// ctx.close();
+// cause.printStackTrace();
+// }
+//
+//
+// private void responseTo(ChannelHandlerContext ctx,String content, HttpResponseStatus status){
+// FullHttpResponse response = HttpResponseFactory.getResponse(content, status);
+// ctx.writeAndFlush(response);
+// ctx.close();
+// }
+//
+// private String getURI(String url){
+// if (url.equals(File.separator)){
+// return File.separator;
+// }
+// String[] path_segement = url.split(File.separator);
+// String root_path = path_segement[1];
+// return url.substring(root_path.lastIndexOf(root_path) + root_path.length()+1);
+// }
+//
+//
+// private String getRoot(String url){
+// if (url == null||url.equals(File.separator)||url.isEmpty()){
+// return "/";
+// }
+// String[] path_segement = url.split(File.separator);
+// return path_segement[1];
+// }
+//}
diff --git a/src/main/java/org/code4j/jproxy/run/Main.java b/src/main/java/org/code4j/jproxy/run/Main.java
index c1dfe2d044d24dbe18517675fc51a6097d64e333..0135b3a6e616650c6e229456705c999b2209a6a2 100644
--- a/src/main/java/org/code4j/jproxy/run/Main.java
+++ b/src/main/java/org/code4j/jproxy/run/Main.java
@@ -15,9 +15,6 @@ import org.code4j.jproxy.server.ProxyServer;
public class Main {
public static void main(String[] args) {
-// System.out.println(Arrays.toString(MD5Util.getMD5("x")));
-// System.out.println(MD5Util.getMD5("x").length*8);
-// System.out.println(Arrays.toString(new String(MD5Util.getMD5("x")).getBytes()));
//开源中国要有WWW
new Thread(new Runnable() {
@Override
diff --git a/src/main/java/org/code4j/jproxy/server/ProxyServer.java b/src/main/java/org/code4j/jproxy/server/ProxyServer.java
index c3fcfe3e4390d0a90933eddd70a6e9273f2ca9b5..5c5a2354ef302578f4213038dbad6898a11dcffe 100644
--- a/src/main/java/org/code4j/jproxy/server/ProxyServer.java
+++ b/src/main/java/org/code4j/jproxy/server/ProxyServer.java
@@ -10,6 +10,7 @@ import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
+import org.apache.log4j.Logger;
import org.code4j.jproxy.constans.Const;
import org.code4j.jproxy.handler.ServerChildHandler;
import org.code4j.jproxy.util.Configuration;
@@ -22,6 +23,7 @@ import org.code4j.jproxy.util.Configuration;
public class ProxyServer {
+ private static Logger log = Logger.getLogger(ProxyServer.class);
public void startup(){
launch(Configuration.getIntValue(Const.LISTEN));
@@ -36,7 +38,7 @@ public class ProxyServer {
}
private void launch(int port){
- System.out.println("正在启动服务。。。");
+ log.info("正在启动服务。。。");
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
ServerBootstrap b = new ServerBootstrap();
@@ -46,7 +48,7 @@ public class ProxyServer {
.childHandler(new ServerChildHandler())
.option(ChannelOption.SO_BACKLOG, 256).childOption(ChannelOption.SO_KEEPALIVE, true);
f = b.bind(port).sync();
- System.out.println("服务已启动");
+ log.info("服务已启动");
f.channel().closeFuture().sync();
} catch (InterruptedException e) {
e.printStackTrace();
diff --git a/src/main/java/org/code4j/jproxy/util/DiskUtil.java b/src/main/java/org/code4j/jproxy/util/DiskUtil.java
index 7cc0e6a2c318a2e84cc36407655704e124cefc2a..1a1e3adb37e324d2ff7512615ff600b9872908b6 100644
--- a/src/main/java/org/code4j/jproxy/util/DiskUtil.java
+++ b/src/main/java/org/code4j/jproxy/util/DiskUtil.java
@@ -4,6 +4,8 @@ package org.code4j.jproxy.util;/**
* 下午3:40
*/
+import org.apache.log4j.Logger;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -18,8 +20,11 @@ import java.nio.channels.FileChannel;
public class DiskUtil {
+
+ private static Logger log = Logger.getLogger(DiskUtil.class);
+
public static void saveToDisk(String host,String uri,byte[] contents){
- System.out.println(uri+" 保存前的URI");
+ log.info(uri + " 保存前的URI");
if (uri.equals(File.separator)){
uri = File.separator+"index";
}else if (uri.contains("?")){
diff --git a/src/main/java/org/code4j/jproxy/util/ImageUtil.java b/src/main/java/org/code4j/jproxy/util/ImageUtil.java
index 57117ab0378edc89bcd6d9de1b8b8f053393c4f3..fabbf1eae563e8dc7c790ce133391f5662f06818 100644
--- a/src/main/java/org/code4j/jproxy/util/ImageUtil.java
+++ b/src/main/java/org/code4j/jproxy/util/ImageUtil.java
@@ -4,6 +4,8 @@ package org.code4j.jproxy.util;/**
* 下午1:49
*/
+import org.apache.log4j.Logger;
+
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
@@ -18,6 +20,7 @@ import java.io.IOException;
*/
public class ImageUtil {
+ private static Logger log = Logger.getLogger(ImageUtil.class);
public static boolean isImage(byte[] content){
try {
@@ -25,10 +28,10 @@ public class ImageUtil {
ImageIcon icon = new ImageIcon(content);
Image imageIcon = icon.getImage();
if (image == null || imageIcon == null) {
- System.out.println("假图片!!");
+ log.info("假图片!!");
return false;
}
- System.out.println("high: " + image.getHeight());
+ log.info("high: " + image.getHeight());
} catch(IOException ex) {
return false;
}
diff --git a/src/main/java/org/code4j/jproxy/util/JSONUtil.java b/src/main/java/org/code4j/jproxy/util/JSONUtil.java
index ce2c3aad1bdaf5abb821658db629841604b26a90..d48424f4417a0c8419f2b2166dfb51dd7d9a9e36 100644
--- a/src/main/java/org/code4j/jproxy/util/JSONUtil.java
+++ b/src/main/java/org/code4j/jproxy/util/JSONUtil.java
@@ -7,6 +7,7 @@ package org.code4j.jproxy.util;/**
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import org.apache.log4j.Logger;
import java.util.HashMap;
import java.util.List;
@@ -20,6 +21,8 @@ import java.util.Map;
public class JSONUtil {
+ private static Logger log = Logger.getLogger(JSONUtil.class);
+
public static List strToArray(String json){
return JSONArray.parseArray(json,String.class);
}
@@ -43,9 +46,9 @@ public class JSONUtil {
}
public static Map requestParam(String str){
- System.out.println("原生请求字符串-----------: \n");
- System.out.println(str);
- System.out.println("原生请求字符串-----------: \n");
+ log.info("原生请求字符串-----------: \n");
+ log.info(str);
+ log.info("原生请求字符串-----------: \n");
String[] param = str.split("&");
Map params = new HashMap();
for (String p:param){
diff --git a/src/main/java/org/code4j/jproxy/util/JedisUtil.java b/src/main/java/org/code4j/jproxy/util/JedisUtil.java
index 1b60f7e836431c7020e85f982b9a8c1fad6dab1f..eee1b67ba04ed51648a95bc65c9daf4813981067 100644
--- a/src/main/java/org/code4j/jproxy/util/JedisUtil.java
+++ b/src/main/java/org/code4j/jproxy/util/JedisUtil.java
@@ -4,6 +4,7 @@ package org.code4j.jproxy.util;/**
* 上午10:50
*/
+import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
import java.util.List;
@@ -15,10 +16,11 @@ import java.util.List;
*/
public class JedisUtil {
+ private static Logger log = Logger.getLogger(JedisUtil.class);
public static Jedis jedisClient = new Jedis("localhost");
static {
- System.out.println("Server is running: "+jedisClient.ping());
+ log.info("Server is running: " + jedisClient.ping());
}
public static String get(String key){
return jedisClient.get(key);
diff --git a/src/main/java/org/code4j/jproxy/util/WebUtil.java b/src/main/java/org/code4j/jproxy/util/WebUtil.java
index 795fa125d962970cb2cf912d084c98116db09089..a8b2afc893899e92d52596facb7ba7745a84390d 100644
--- a/src/main/java/org/code4j/jproxy/util/WebUtil.java
+++ b/src/main/java/org/code4j/jproxy/util/WebUtil.java
@@ -4,6 +4,8 @@ package org.code4j.jproxy.util;/**
* 下午2:50
*/
+import org.apache.log4j.Logger;
+
import java.io.File;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -17,6 +19,7 @@ import java.util.regex.Pattern;
*/
public class WebUtil {
+ private static Logger log = Logger.getLogger(DiskUtil.class);
public static final String WEB_ROOT = System.getProperty("user.dir")+ File.separator+"cache/";
@@ -37,14 +40,14 @@ public class WebUtil {
public static final String ROOT = "/";
public static List fetchImageFromString(String content){
- System.out.println("在CSS中寻找图片资源");
+ log.info("在CSS中寻找图片资源");
Pattern pattern = Pattern.compile(INNER_IMAGE);
Matcher matcher = pattern.matcher(content);
List uris = new CopyOnWriteArrayList();
while(matcher.find()){
- System.out.println("找到一个图片");
+ log.info("找到一个图片");
String path = matcher.group().replace("url(","").replace(")", "");
- System.out.println("path ---> : "+path);
+ log.info("path ---> : " + path);
uris.add(File.separator+path);
}
return uris;
diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml
new file mode 100644
index 0000000000000000000000000000000000000000..385ddb59710f977bca7f92caf0132b04d10cd89d
--- /dev/null
+++ b/src/main/resources/log4j.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/ProxyTest.java b/src/test/java/ProxyTest.java
index 05cf25ee0a02198d3ed2a93e7a02f06f8c822841..f7e5df2823ababc2fb1eb801c5e9d2b10785d6d0 100644
--- a/src/test/java/ProxyTest.java
+++ b/src/test/java/ProxyTest.java
@@ -4,6 +4,7 @@
* 下午2:16
*/
+import org.apache.log4j.Logger;
import org.code4j.jproxy.client.ProxyClient;
import org.code4j.jproxy.server.IPSelector;
import org.junit.Test;
@@ -21,14 +22,16 @@ import java.util.regex.Pattern;
public class ProxyTest {
+ private static Logger log = Logger.getLogger(ProxyTest.class);
+
@Test
public void testParrtern(){
Pattern pattern = Pattern.compile("url\\(.*\\.(png|ico|jpg|jpeg|bmp|swf|swf)\\)");
// Pattern pattern = Pattern.compile("(url\\()(http://).*?(?:jpg|png|gif)(?=\\))");
Matcher matcher = pattern.matcher("background: #fff url(bg-upper.png) repeat-x top left;");
- System.out.println(matcher.matches());
+ log.info(matcher.matches());
while (matcher.find()){
- System.out.println(matcher.group());
+ log.info(matcher.group());
}
}
@@ -37,26 +40,26 @@ public class ProxyTest {
ProxyClient client = new ProxyClient(new InetSocketAddress("127.0.0.1",8080),"/tomcat.css");
File file = new File(System.getProperty("user.dir")+File.separator+"cache"+ File.separator+"tomcat.css");
if (!file.exists()){
- System.out.println(file.getAbsolutePath());
+ log.info(file.getAbsolutePath());
file.createNewFile();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
// bos.write(client.fetchImage(HttpMethod.GET));
//
bos.flush();
-// System.out.println("is image? "+ ImageUtil.isImage(client.fetchImage(HttpMethod.GET)));
+// log.info("is image? "+ ImageUtil.isImage(client.fetchImage(HttpMethod.GET)));
}
@Test
public void testPath(){
- System.out.println(System.getProperty("user.dir")+"cache");
- System.out.println(getClass().getClassLoader().getResource("txt"));
+ log.info(System.getProperty("user.dir") + "cache");
+ log.info(getClass().getClassLoader().getResource("txt"));
}
@Test
public void testSaveFile() throws IOException {
// Pattern css_pattern = Pattern.compile(".+\\.(css).*");
-// System.out.println(css_pattern.matcher("").matches());
+// log.info(css_pattern.matcher("").matches());
Pattern pattern = Pattern.compile("url\\(.*\\.(png|ico|jpg|jpeg|bmp|swf|swf)\\)");
// pattern.matcher("")
}
@@ -64,21 +67,21 @@ public class ProxyTest {
@Test
public void testConfig() throws IOException {
InputStream is = this.getClass().getResourceAsStream("/config.json");
- System.out.println(is);
+ log.info(is);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String str = "";
while ((str = br.readLine()) != null){
sb.append(str);
}
- System.out.println(sb);
+ log.info(sb);
int weight = (int) Math.rint(Float.valueOf("2.1"));
- System.out.println();
+ log.info("OK");
}
@Test
public void testLoadBalance(){
InetSocketAddress address = IPSelector.weight();
- System.out.println(address.getHostName()+":"+address.getPort());
+ log.info(address.getHostName() + ":" + address.getPort());
}
}
diff --git a/target/test-classes/ProxyTest.class b/target/test-classes/ProxyTest.class
index 3d7dbc3c18e3ca274a819a6151718bd6845162c2..ab40103fee5526edde1e083c75c8facac89fab87 100644
Binary files a/target/test-classes/ProxyTest.class and b/target/test-classes/ProxyTest.class differ