Skip to content

Commit 2c46eb1

Browse files
author
mcxiaoke
committed
http: simplify http job and processors
1 parent a1977f0 commit 2c46eb1

File tree

3 files changed

+24
-114
lines changed

3 files changed

+24
-114
lines changed

http/src/main/java/com/mcxiaoke/next/http/HttpQueue.java

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
import com.google.gson.GsonBuilder;
88
import com.mcxiaoke.next.http.callback.BitmapCallback;
99
import com.mcxiaoke.next.http.callback.FileCallback;
10-
import com.mcxiaoke.next.http.callback.HttpCallback;
1110
import com.mcxiaoke.next.http.callback.GsonCallback;
11+
import com.mcxiaoke.next.http.callback.HttpCallback;
1212
import com.mcxiaoke.next.http.callback.ResponseCallback;
1313
import com.mcxiaoke.next.http.callback.StringCallback;
1414
import com.mcxiaoke.next.http.exception.HttpException;
1515
import com.mcxiaoke.next.http.job.HttpJob;
1616
import com.mcxiaoke.next.http.processor.HttpProcessor;
1717
import com.mcxiaoke.next.http.transformer.BitmapTransformer;
1818
import com.mcxiaoke.next.http.transformer.FileTransformer;
19-
import com.mcxiaoke.next.http.transformer.HttpTransformer;
2019
import com.mcxiaoke.next.http.transformer.GsonTransformer;
20+
import com.mcxiaoke.next.http.transformer.HttpTransformer;
2121
import com.mcxiaoke.next.http.transformer.ResponseTransformer;
2222
import com.mcxiaoke.next.http.transformer.StringTransformer;
2323
import com.mcxiaoke.next.task.SimpleTaskCallback;
@@ -127,14 +127,10 @@ public <T> String add(final HttpJob<T> job) {
127127
public <T> String add(final NextRequest request,
128128
final HttpTransformer<T> transformer,
129129
final HttpCallback<T> callback,
130-
final Object caller,
131-
final HttpProcessor<NextRequest> requestProcessor,
132-
final HttpProcessor<NextResponse> preProcessor,
133-
final HttpProcessor<T> postProcessor) {
130+
final HttpProcessor<T> processor,
131+
final Object caller) {
134132
final HttpJob<T> job = new HttpJob<T>(request, transformer, callback, caller);
135-
job.addRequestProcessor(requestProcessor)
136-
.addPreProcessor(preProcessor)
137-
.addPostProcessor(postProcessor);
133+
job.addProcessor(processor);
138134
return enqueue(job);
139135
}
140136

@@ -157,11 +153,6 @@ public <T> String add(final NextRequest request,
157153
Object caller) {
158154
final Gson gson = callback.gson == null ? mGson : callback.gson;
159155
final GsonTransformer<T> transformer;
160-
// if (callback.clazz != null) {
161-
// transformer = new JsonTransformer<T>(gson, callback.clazz);
162-
// } else {
163-
// transformer = new JsonTransformer<T>(gson, callback.type);
164-
// }
165156
transformer = new GsonTransformer<T>(gson, callback.type);
166157
return add(request, transformer, callback, caller);
167158
}
@@ -189,8 +180,6 @@ private <T> String enqueue(final HttpJob<T> job) {
189180
if (mDebug) {
190181
LogUtils.v(TAG, "[HttpJob][Enqueue]" + job.request.url() + " " + Thread.currentThread());
191182
}
192-
ensureClient();
193-
ensureQueue();
194183
final TaskCallable<Pair<NextResponse, T>> callable =
195184
new TaskCallable<Pair<NextResponse, T>>() {
196185
@Override
@@ -204,16 +193,14 @@ public Pair<NextResponse, T> call() throws Exception {
204193
private <T> Pair<NextResponse, T> performRequest(final HttpJob<T> job)
205194
throws IOException, HttpException {
206195
long start = SystemClock.elapsedRealtime();
207-
invokeProcessors(job.request, job.getRequestProcessors());
208196
final NextResponse nextResponse = mClient.execute(job.request);
209197
if (!nextResponse.successful()) {
210198
// not successful, throw http exception
211199
throw new HttpException(nextResponse);
212200
}
213-
invokeProcessors(nextResponse, job.getPreProcessors());
214201
// final T response = mClient.execute(job.request,job.transformer);
215202
final T response = job.transformer.transform(nextResponse);
216-
invokeProcessors(response, job.getPostProcessors());
203+
invokeProcessors(response, job.getProcessors());
217204
if (mDebug) {
218205
LogUtils.v(TAG, "[HttpJob][Perform] in "
219206
+ (SystemClock.elapsedRealtime() - start) + "ms " + nextResponse);
@@ -262,19 +249,6 @@ public void onTaskFailure(final Throwable ex, final Bundle extras) {
262249
};
263250
}
264251

265-
private synchronized void ensureClient() {
266-
if (mClient == null) {
267-
mClient = new NextClient();
268-
}
269-
}
270-
271-
private synchronized void ensureQueue() {
272-
if (mQueue == null) {
273-
mQueue = createQueue();
274-
}
275-
}
276-
277-
278252
private static TaskQueue createQueue() {
279253
return TaskQueue.concurrent(NUM_THREADS_DEFAULT);
280254
}

http/src/main/java/com/mcxiaoke/next/http/job/HttpJob.java

Lines changed: 12 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.mcxiaoke.next.http.HttpQueue;
44
import com.mcxiaoke.next.http.NextRequest;
5-
import com.mcxiaoke.next.http.NextResponse;
65
import com.mcxiaoke.next.http.callback.HttpCallback;
76
import com.mcxiaoke.next.http.processor.HttpProcessor;
87
import com.mcxiaoke.next.http.transformer.HttpTransformer;
@@ -22,80 +21,43 @@ public class HttpJob<T> {
2221
public final HttpTransformer<T> transformer;
2322
public final HttpCallback<T> callback;
2423
public final Object caller;
25-
private List<HttpProcessor<NextRequest>> requestProcessors;
26-
private List<HttpProcessor<NextResponse>> preProcessors;
27-
private List<HttpProcessor<T>> postProcessors;
24+
private List<HttpProcessor<T>> processors;
2825

2926
public HttpJob(final NextRequest request,
3027
final HttpTransformer<T> transformer,
3128
final HttpCallback<T> callback,
3229
final Object caller) {
33-
this(request, transformer, callback, caller, null, null, null);
30+
this(request, transformer, callback, null, caller);
3431
}
3532

3633
public HttpJob(final NextRequest request,
3734
final HttpTransformer<T> transformer,
3835
final HttpCallback<T> callback,
39-
final Object caller,
40-
List<HttpProcessor<NextRequest>> requestProcessors,
41-
final List<HttpProcessor<NextResponse>> preProcessors,
42-
final List<HttpProcessor<T>> postProcessors) {
36+
final List<HttpProcessor<T>> processors,
37+
final Object caller) {
4338
AssertUtils.notNull(request, "request must not be null.");
4439
AssertUtils.notNull(transformer, "transformer must not be null.");
4540
AssertUtils.notNull(caller, "caller must not be null.");
4641
this.request = request;
4742
this.transformer = transformer;
4843
this.callback = callback;
4944
this.caller = caller;
50-
if (requestProcessors != null) {
51-
this.requestProcessors = requestProcessors;
52-
} else {
53-
this.requestProcessors = new ArrayList<HttpProcessor<NextRequest>>(2);
54-
}
55-
if (preProcessors != null) {
56-
this.preProcessors = preProcessors;
57-
} else {
58-
this.preProcessors = new ArrayList<HttpProcessor<NextResponse>>(2);
59-
}
60-
if (postProcessors != null) {
61-
this.postProcessors = postProcessors;
45+
if (processors != null) {
46+
this.processors = processors;
6247
} else {
63-
this.postProcessors = new ArrayList<HttpProcessor<T>>(2);
64-
}
65-
}
66-
67-
68-
public HttpJob<T> addRequestProcessor(HttpProcessor<NextRequest> processor) {
69-
if (processor != null) {
70-
this.requestProcessors.add(processor);
48+
this.processors = new ArrayList<HttpProcessor<T>>(2);
7149
}
72-
return this;
73-
}
74-
75-
public HttpJob<T> addPreProcessor(HttpProcessor<NextResponse> processor) {
76-
if (processor != null) {
77-
this.preProcessors.add(processor);
78-
}
79-
return this;
8050
}
8151

82-
public HttpJob<T> addPostProcessor(HttpProcessor<T> processor) {
52+
public HttpJob<T> addProcessor(HttpProcessor<T> processor) {
8353
if (processor != null) {
84-
this.postProcessors.add(processor);
54+
this.processors.add(processor);
8555
}
8656
return this;
8757
}
8858

89-
public List<HttpProcessor<NextRequest>> getRequestProcessors() {
90-
return requestProcessors;
91-
}
92-
93-
public List<HttpProcessor<NextResponse>> getPreProcessors() {
94-
return preProcessors;
95-
}
96-
97-
public List<HttpProcessor<T>> getPostProcessors() {
98-
return postProcessors;
59+
public List<HttpProcessor<T>> getProcessors() {
60+
return processors;
9961
}
10062

10163
public String execute(final HttpQueue queue) {
@@ -112,9 +74,7 @@ public String toString() {
11274
"request=" + request +
11375
", transformer=" + transformer +
11476
", callback=" + callback +
115-
", requestProcessors=" + requestProcessors +
116-
", preProcessors=" + preProcessors +
117-
", postProcessors=" + postProcessors +
77+
", processors=" + processors +
11878
", caller=" + caller +
11979
'}';
12080
}
Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.mcxiaoke.next.http.job;
22

33
import com.mcxiaoke.next.http.NextRequest;
4-
import com.mcxiaoke.next.http.NextResponse;
54
import com.mcxiaoke.next.http.callback.HttpCallback;
65
import com.mcxiaoke.next.http.processor.HttpProcessor;
76
import com.mcxiaoke.next.http.transformer.HttpTransformer;
@@ -14,9 +13,7 @@ public class HttpJobBuilder<T> {
1413
private HttpTransformer<T> mTransformer;
1514
private HttpCallback<T> mCallback;
1615
private Object mCaller;
17-
public List<HttpProcessor<NextRequest>> mRequestProcessors;
18-
public List<HttpProcessor<NextResponse>> mPreProcessors;
19-
public List<HttpProcessor<T>> mPostProcessors;
16+
public List<HttpProcessor<T>> mProcessors;
2017

2118
public HttpJobBuilder<T> request(final NextRequest request) {
2219
mRequest = request;
@@ -38,38 +35,17 @@ public HttpJobBuilder<T> caller(final Object caller) {
3835
return this;
3936
}
4037

41-
public HttpJobBuilder<T> requestProcessor(HttpProcessor<NextRequest> processor) {
38+
public HttpJobBuilder<T> processor(HttpProcessor<T> processor) {
4239
if (processor != null) {
43-
if (mRequestProcessors == null) {
44-
mRequestProcessors = new ArrayList<HttpProcessor<NextRequest>>(2);
40+
if (mProcessors == null) {
41+
mProcessors = new ArrayList<HttpProcessor<T>>(2);
4542
}
46-
mRequestProcessors.add(processor);
47-
}
48-
return this;
49-
}
50-
51-
public HttpJobBuilder<T> preProcessor(HttpProcessor<NextResponse> processor) {
52-
if (processor != null) {
53-
if (mPreProcessors == null) {
54-
mPreProcessors = new ArrayList<HttpProcessor<NextResponse>>(2);
55-
}
56-
mPreProcessors.add(processor);
57-
}
58-
return this;
59-
}
60-
61-
public HttpJobBuilder<T> postProcessor(HttpProcessor<T> processor) {
62-
if (processor != null) {
63-
if (mPostProcessors == null) {
64-
mPostProcessors = new ArrayList<HttpProcessor<T>>(2);
65-
}
66-
mPostProcessors.add(processor);
43+
mProcessors.add(processor);
6744
}
6845
return this;
6946
}
7047

7148
public HttpJob<T> create() {
72-
return new HttpJob<T>(mRequest, mTransformer, mCallback, mCaller,
73-
mRequestProcessors, mPreProcessors, mPostProcessors);
49+
return new HttpJob<T>(mRequest, mTransformer, mCallback, mProcessors, mCaller);
7450
}
7551
}

0 commit comments

Comments
 (0)