Skip to content

Commit 96396b7

Browse files
authored
Merge pull request #20 from olenagerasimova/19-logging
feat: logging via slf4j
2 parents fed7eb4 + 2b6f82b commit 96396b7

File tree

4 files changed

+26
-48
lines changed

4 files changed

+26
-48
lines changed

mvn-resolver-transport-http3/src/main/java/com/artipie/aether/transport/http3/HttpTransporter.java

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,16 @@
7373
import org.eclipse.jetty.http3.client.HTTP3Client;
7474
import org.eclipse.jetty.http3.client.transport.HttpClientTransportOverHTTP3;
7575
import org.eclipse.jetty.util.ssl.SslContextFactory;
76+
import org.slf4j.Logger;
77+
import org.slf4j.LoggerFactory;
7678

7779
/**
7880
* A transporter for HTTP/HTTPS.
7981
*/
8082
final class HttpTransporter extends AbstractTransporter {
8183

84+
static final Logger LOGGER = LoggerFactory.getLogger("http3.plugin");
85+
8286
private final static Set<String> CENTRAL = Set.of(
8387
"repo.maven.apache.org",
8488
"oss.sonatype.org",
@@ -114,7 +118,7 @@ final class HttpTransporter extends AbstractTransporter {
114118
}
115119
this.checksumExtractors = requireNonNull(checksumExtractors, "checksum extractors must not be null");
116120
try {
117-
System.err.println("\tCustom HttpTransporter repo: " + repository.toString());
121+
LOGGER.debug("Custom HttpTransporter repo: {}", repository);
118122
this.baseUri = new URI(repository.getUrl() + "/").normalize().parseServerAuthority();
119123
if (baseUri.isOpaque()) {
120124
throw new URISyntaxException(repository.getUrl(), "URL must not be opaque");
@@ -293,24 +297,23 @@ private Pair<InputStream, HttpFields> makeRequest(
293297
}).body(bodyContent).send(listener);
294298
final Response response = listener.get(this.connectTimeout, TimeUnit.MILLISECONDS);
295299
if (response.getStatus() >= 300) {
296-
System.err.printf(
297-
"Request over %s error status %s, method=%s, url=%s%n",
300+
LOGGER.debug(
301+
"{} request error status {}, method={}, url={}",
298302
version, response.getStatus(), method, url
299303
);
300304
throw new HttpResponseException(Integer.toString(response.getStatus()), response);
301305
}
302-
System.err.printf(
303-
"Request over %s done, method=%s, resp status=%s, url=%s%n",
304-
version, method, response.getStatus(), url
306+
LOGGER.debug(
307+
"{} request done, method={}, resp status={}, url={}", version, method, response.getStatus(), url
305308
);
306309
return new ImmutablePair<>(listener.getInputStream(), response.getHeaders());
307310
} catch (Exception ex) {
308-
System.err.printf(
309-
"Request over %s error=%s: %s, method=%s, url=%s%n", version,
311+
LOGGER.debug(
312+
"{} request error={}: {}, method={}, url={}", version,
310313
ex.getClass(), ex.getMessage(), method, url
311314
);
312315
if (version == HttpVersion.HTTP_3 && ex instanceof TimeoutException) {
313-
System.err.printf("Repeat request over HTTP/1.1 method=%s, url=%s%n", method, url);
316+
LOGGER.debug("Repeat via HTTP/1.1 method={}, url={}", method, url);
314317
return this.makeRequest(method, task, bodyContent, this.initOrGetHttpClient());
315318
}
316319
throw new HttpRequestException(ex.getMessage(), request);
@@ -354,7 +357,7 @@ private HttpVersion httpVersion(final HttpClient client) {
354357
* @throws IllegalAccessException
355358
*/
356359
private void forceLoadHttp3Support() throws NoSuchFieldException, IllegalAccessException {
357-
System.err.println("Custom HttpTransporter.forceLoadHttp3Support() called!");
360+
LOGGER.debug("Custom HttpTransporter.forceLoadHttp3Support() called!");
358361
// Checking http3 support is available (loaded)
359362
PreEncodedHttpField f = new PreEncodedHttpField("Host", "localhost");
360363
for (final HttpVersion v: HttpVersion.values()) {
@@ -369,47 +372,20 @@ private void forceLoadHttp3Support() throws NoSuchFieldException, IllegalAccessE
369372

370373
// TODO: Force http3 initialization (HACK!)
371374
final ServiceLoader<HttpFieldPreEncoder> load = ServiceLoader.load(HttpFieldPreEncoder.class,PreEncodedHttpField.class.getClassLoader());
372-
/*ServiceLoader<HttpFieldPreEncoder> load = null;
373-
ClassLoader saveCl = Thread.currentThread().getContextClassLoader();
374-
try {
375-
Thread.currentThread().setContextClassLoader(PreEncodedHttpField.class.getClassLoader());
376-
load = ServiceLoader.load(HttpFieldPreEncoder.class);
377-
}finally {
378-
Thread.currentThread().setContextClassLoader(saveCl);
379-
}*/
380-
381-
/*System.err.println("\tCustom HttpTransporter ServiceLoader=" + load);
382-
Stream<ServiceLoader.Provider<HttpFieldPreEncoder>> providerStream = TypeUtil.serviceProviderStream(load);
383-
System.err.println("\tCustom HttpTransporter Stream<ServiceLoader.Provider<HttpFieldPreEncoder>> = " + providerStream);
384-
ArrayList<Integer> calls = new ArrayList<>();
385-
providerStream.forEach((provider) -> {
386-
try {
387-
calls.add(calls.size());
388-
HttpFieldPreEncoder encoder = (HttpFieldPreEncoder)provider.get();
389-
HttpVersion v = encoder.getHttpVersion();
390-
System.err.println("\tCustom HttpTransporter HttpFieldPreEncoder: encoder=" + encoder + "; ver=" + v);
391-
} catch (RuntimeException | Error var3) {
392-
System.err.println("\tCustom HttpTransporter Error processing encoder: " + provider.get());
393-
}
394-
});
395-
System.err.println("\tCustom HttpTransporter providerStream calls=" + calls.size());*/
396-
397375
HashMap<HttpVersion, HttpFieldPreEncoder> encoders = new HashMap<>();
398376
for (HttpFieldPreEncoder val: load) {
399-
//System.err.println("\tCustom HttpTransporter HttpFieldPreEncoder val=" + val);
377+
LOGGER.debug("Custom HttpTransporter HttpFieldPreEncoder val={}", val);
400378
encoders.put(val.getHttpVersion(), val);
401379
}
402380

403381
Field ff = PreEncodedHttpField.class.getDeclaredField("__encoders");
404382
ff.setAccessible(true);
405-
String fldDescr = ff.get(null).toString();
406-
//System.err.println("\tCustom HttpTransporter __encoders BEFORE: " + fldDescr + "; this=" + this);
407383
@SuppressWarnings("unchecked") EnumMap<HttpVersion, HttpFieldPreEncoder> obj = (EnumMap<HttpVersion, HttpFieldPreEncoder>)ff.get(null);
408384
if (encoders.containsKey(HttpVersion.HTTP_3) && !obj.containsKey(HttpVersion.HTTP_3)) {
409-
//System.err.println("\tCustom HttpTransporter adding to __encoders: " + obj + "; this=" + this);
385+
LOGGER.debug("Custom HttpTransporter adding to __encoders: {}, this = {}", obj, this);
410386
obj.put(HttpVersion.HTTP_3, encoders.get(HttpVersion.HTTP_3));
411387
}
412-
//System.err.println("\tCustom HttpTransporter __encoders AFTER: " + obj + "; this=" + this);
388+
LOGGER.debug("Custom HttpTransporter __encoders AFTER: {}; this={}", obj, this);
413389

414390
// Rechecking http3 support is available (loaded)
415391
f = new PreEncodedHttpField("Host", "localhost");
@@ -420,7 +396,7 @@ private void forceLoadHttp3Support() throws NoSuchFieldException, IllegalAccessE
420396
} catch (Exception ex) {
421397
len = -1;
422398
}
423-
//System.err.println("\tCustom HttpTransporter PreEncodedHttpField v=" + v + "; len=" + len);
399+
LOGGER.debug("Custom HttpTransporter PreEncodedHttpField v={}; len={}", v, len);
424400
}
425401
}
426402
}

mvn-resolver-transport-http3/src/main/java/com/artipie/aether/transport/http3/HttpTransporterFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public Transporter newInstance(RepositorySystemSession session, RemoteRepository
9090
throws NoTransporterException {
9191
requireNonNull(session, "session cannot be null");
9292
requireNonNull(repository, "repository cannot be null");
93-
System.err.println("Custom HttpTransporterFactory created!!!");
93+
HttpTransporter.LOGGER.debug("Custom HttpTransporterFactory created!!!");
9494
try {
9595
return new HttpTransporter(extractors, repository, session);
9696
} catch (Exception e) {

mvn-resolver-transport-http3/src/main/resources/log4j.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %c - %m%n
66

77
log4j2.formatMsgNoLookups=True
88

9+
log4j.logger.http3.plugin=DEBUG
910
log4j.logger.com.artipie=DEBUG

mvn-resolver-transport-http3/src/test/java/com/artipie/aether/transport/http3/ArtipieAndLocalPluginHTTP3IT.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,15 @@
3535
*/
3636
public class ArtipieAndLocalPluginHTTP3IT {
3737

38-
private static final Logger LOGGER = LoggerFactory.getLogger(ArtipieAndLocalPluginHTTP3IT.class);
38+
private static final Logger LOGGER = LoggerFactory.getLogger("ArtipieAndLocalPluginHTTP3IT");
3939

4040
private GenericContainer<?> mavenClient;
4141

4242
private GenericContainer<?> artipie;
4343

4444
private final Consumer<OutputFrame> artipieLog =
45-
new Slf4jLogConsumer(LoggerFactory.getLogger(this.getClass())).withPrefix("ARTIPIE");
45+
new Slf4jLogConsumer(LoggerFactory.getLogger("ArtipieAndLocalPluginHTTP3IT"))
46+
.withPrefix("ARTIPIE");
4647

4748
private Network net;
4849

@@ -74,17 +75,17 @@ void resolvesDependencies() throws IOException, InterruptedException {
7475
this.putClasspathResourceToClient("com/example/maven-http3/maven-settings.xml", "/w/settings.xml");
7576
this.putClasspathResourceToClient("com/example/maven-http3/pom.xml", "/w/pom.xml");
7677
final Container.ExecResult exec = this.mavenClient.execInContainer(
77-
"mvn", "install", "-s", "settings.xml", "-Daether.connector.https.securityMode=insecure"
78+
"mvn", "install", "-X", "-s", "settings.xml", "-Daether.connector.https.securityMode=insecure"
7879
);
7980
String res = String.join("\n", exec.getStdout(), exec.getStderr());
8081
LOGGER.info(res);
8182
MatcherAssert.assertThat("Maven install is not successful", exec.getExitCode() == 0);
8283
MatcherAssert.assertThat(
8384
res,
8485
Matchers.stringContainsInOrder(
85-
"BUILD SUCCESS",
86-
"Request over HTTP/3.0 done, method=GET, resp status=200, url=https://artipie:8091/my-maven-proxy/args4j/args4j/2.33/args4j-2.33.jar",
87-
"Request over HTTP/3.0 done, method=GET, resp status=200, url=https://artipie:8091/my-maven-proxy/org/springframework/spring-web/6.1.0/spring-web-6.1.0.jar"
86+
"HTTP/3.0 request done, method=GET, resp status=200, url=https://artipie:8091/my-maven-proxy/args4j/args4j/2.33/args4j-2.33.jar",
87+
"HTTP/3.0 request done, method=GET, resp status=200, url=https://artipie:8091/my-maven-proxy/org/springframework/spring-web/6.1.0/spring-web-6.1.0.jar",
88+
"BUILD SUCCESS"
8889
)
8990
);
9091
}

0 commit comments

Comments
 (0)