Skip to content

Commit

Permalink
polish
Browse files Browse the repository at this point in the history
  • Loading branch information
larsgrefer committed Aug 17, 2023
1 parent 0c877b7 commit fc4242e
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
/**
* @author Lars Grefer
*/
@SuppressWarnings("LombokGetterMayBeUsed")
@Deprecated
public class OkHttpCachePlugin implements Plugin<Project> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,21 @@
import okhttp3.logging.HttpLoggingInterceptor;
import org.gradle.api.provider.Property;

/**
* @author Lars Grefer
*/
public abstract class OkHttpExtension {

public abstract Property<HttpLoggingInterceptor.Level> getLoggingLevel();

/**
* Size in bytes for the internal {@link okhttp3.Cache HTTP cache}.
* Setting this to 0 disables the cache.
*/
public abstract Property<Integer> getCacheSize();

public abstract Property<Boolean> getForceCache();

public abstract Property<Boolean> getForceNetwork();

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,21 @@ public void apply(Project project) {
okHttpExtension = project.getExtensions().create("okHttp", OkHttpExtension.class);
okHttpExtension.getLoggingLevel().convention(project.provider(this::getLevel));

okHttpExtension.getCacheSize().convention(10 * 1024 * 1024);

okHttpExtension.getForceCache().convention(
project.getGradle().getStartParameter().isOffline()
);

okHttpExtension.getForceNetwork().convention(
project.getGradle().getGradle().getStartParameter().isRefreshDependencies()
);

project.getTasks().withType(OkHttpTask.class).configureEach(okHttpTask -> {
okHttpTask.getLoggingLevel().convention(okHttpExtension.getLoggingLevel());
okHttpTask.getCacheSize().convention(okHttpExtension.getCacheSize());
okHttpTask.getForceCache().convention(okHttpExtension.getForceCache());
okHttpTask.getForceNetwork().convention(okHttpExtension.getForceNetwork());
});
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package io.freefair.gradle.plugins.okhttp.tasks;

import io.freefair.gradle.plugins.okhttp.internal.CacheControlInterceptor;
import io.freefair.gradle.plugins.okhttp.internal.ProgressInterceptor;
import io.freefair.gradle.plugins.okhttp.internal.ProgressListener;
import lombok.RequiredArgsConstructor;
import okhttp3.*;
import okhttp3.logging.HttpLoggingInterceptor;
import org.gradle.api.DefaultTask;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.gradle.api.GradleException;
import org.gradle.api.provider.MapProperty;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.Console;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.TaskAction;
Expand All @@ -22,6 +21,8 @@
import java.time.Duration;

/**
* Base class for tasks which execute exactly one {@link Request HTTP Request}.
*
* @author Lars Grefer
*/
public abstract class OkHttpRequestTask extends OkHttpTask {
Expand Down Expand Up @@ -50,17 +51,14 @@ public void executeRequest() throws IOException {

Request request = buildRequest(new Request.Builder()).build();

OkHttpClient client = getOkHttpClient();

client = client.newBuilder()
OkHttpClient client = getOkHttpClient()
.newBuilder()
.addNetworkInterceptor(new ProgressInterceptor(new GradleProcessListener(progressLogger)))
.build();

progressLogger.start(request.toString(), "Call");

Call call = client.newCall(request);

try (Response response = call.execute()) {
try (Response response = client.newCall(request).execute()) {
handleResponse(response);
} finally {
progressLogger.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@

import java.io.File;

/**
* Base class for tasks using an {@link OkHttpClient}.
*
* @author Lars Grefer
*/
public abstract class OkHttpTask extends DefaultTask {

@Console
Expand Down Expand Up @@ -58,20 +63,20 @@ protected OkHttpClient buildOkHttpClient() {

if (cacheDir != null && cacheSize > 1) {
Cache cache = new Cache(cacheDir, cacheSize);
builder = builder.cache(cache);
builder.cache(cache);
}

if (getForceCache().getOrElse(false)) {
builder = builder.addInterceptor(new CacheControlInterceptor(CacheControl.FORCE_CACHE));
builder.addInterceptor(new CacheControlInterceptor(CacheControl.FORCE_CACHE));
}
else if (getForceNetwork().getOrElse(false)) {
builder = builder.addInterceptor(new CacheControlInterceptor(CacheControl.FORCE_NETWORK));
builder.addInterceptor(new CacheControlInterceptor(CacheControl.FORCE_NETWORK));
}

if (getLoggingLevel().isPresent()) {
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(s -> getLogger().lifecycle(s));
loggingInterceptor.level(getLoggingLevel().get());
builder = builder.addInterceptor(loggingInterceptor);
builder.addInterceptor(loggingInterceptor);
}

return builder.build();
Expand Down

0 comments on commit fc4242e

Please sign in to comment.