Skip to content

Commit 18c119a

Browse files
authored
chore: Update jitsi-xmpp-exceptions, jicoco.' (#595)
* Use smack-4.4.8-jitsi-1. * ref: Use getMetrics(accepts), parse Accept header. * chore: Update jitsi-xmpp-extensions and jicoco. * chore: Bump jetty to match jicoco.
1 parent ff7d133 commit 18c119a

File tree

2 files changed

+44
-24
lines changed

2 files changed

+44
-24
lines changed

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2020
<slf4j.version>1.7.36</slf4j.version>
2121
<junit.version>5.8.2</junit.version>
22-
<smack.version>4.4.8</smack.version>
22+
<smack.version>4.4.8-jitsi-1</smack.version>
2323
<jxmppVersion>1.0.3</jxmppVersion>
2424
<!-- Match jicoco's jetty version. -->
25-
<jicoco.version>1.1-150-g57913c0</jicoco.version>
26-
<jetty.version>11.0.20</jetty.version>
25+
<jicoco.version>1.1-156-g4ea1d28</jicoco.version>
26+
<jetty.version>11.0.21</jetty.version>
2727
<oci-sdk.version>3.45.0</oci-sdk.version>
2828
</properties>
2929

@@ -357,7 +357,7 @@
357357
<dependency>
358358
<groupId>${project.groupId}</groupId>
359359
<artifactId>jitsi-xmpp-extensions</artifactId>
360-
<version>1.0-82-ge8aacab</version>
360+
<version>1.0-92-g2d110a0</version>
361361
</dependency>
362362
<dependency>
363363
<groupId>org.slf4j</groupId>

src/main/java/org/jitsi/jigasi/rest/MetricsHandler.java

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@
1515
*/
1616
package org.jitsi.jigasi.rest;
1717

18-
import io.prometheus.client.exporter.common.*;
1918
import jakarta.servlet.*;
2019
import jakarta.servlet.http.*;
21-
import org.eclipse.jetty.server.*;
20+
import jakarta.ws.rs.core.*;
21+
import kotlin.*;
22+
import org.eclipse.jetty.server.Request;
2223
import org.eclipse.jetty.server.handler.*;
2324
import org.jitsi.jigasi.metrics.*;
2425
import org.jitsi.jigasi.stats.*;
2526

2627
import java.io.*;
28+
import java.util.*;
29+
import java.util.stream.*;
2730

2831
public class MetricsHandler extends AbstractHandler
2932
{
@@ -37,27 +40,44 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
3740

3841
Statistics.updateMetrics();
3942

40-
String responseBody;
41-
if (accept != null && accept.startsWith("application/openmetrics-text"))
42-
{
43-
responseBody = JigasiMetricsContainer.INSTANCE.getPrometheusMetrics(
44-
TextFormat.CONTENT_TYPE_OPENMETRICS_100);
45-
response.setContentType(TextFormat.CONTENT_TYPE_OPENMETRICS_100);
46-
}
47-
else if (accept != null && accept.startsWith("text/plain"))
48-
{
49-
responseBody = JigasiMetricsContainer.INSTANCE.getPrometheusMetrics(TextFormat.CONTENT_TYPE_004);
50-
response.setContentType(TextFormat.CONTENT_TYPE_004);
51-
}
52-
else
53-
{
54-
responseBody = JigasiMetricsContainer.INSTANCE.getJsonString();
55-
response.setContentType(RESTUtil.JSON_CONTENT_TYPE_WITH_CHARSET);
56-
}
43+
Pair<String, String> metricsAndContentType
44+
= JigasiMetricsContainer.INSTANCE.getMetrics(getMediaTypes(accept));
45+
response.setContentType(metricsAndContentType.getSecond());
5746

5847
Writer writer = response.getWriter();
59-
writer.write(responseBody);
48+
writer.write(metricsAndContentType.getFirst());
6049
response.setStatus(200);
6150
}
6251
}
52+
53+
private List<String> getMediaTypes(String accept)
54+
{
55+
if (accept == null)
56+
{
57+
return Collections.emptyList();
58+
}
59+
60+
if (accept.startsWith("Accept: "))
61+
{
62+
accept = accept.substring("Accept: ".length());
63+
}
64+
65+
return Arrays.stream(accept.split(","))
66+
.map(String::trim)
67+
.map(MediaType::valueOf)
68+
.sorted(new MediaTypeComparator())
69+
.map(m -> m.getType() + "/" + m.getSubtype())
70+
.collect(Collectors.toList());
71+
}
72+
73+
private static class MediaTypeComparator implements Comparator<MediaType>
74+
{
75+
@Override
76+
public int compare(MediaType o1, MediaType o2)
77+
{
78+
double q1 = Double.parseDouble(o1.getParameters().getOrDefault("q", "1.0"));
79+
double q2 = Double.parseDouble(o2.getParameters().getOrDefault("q", "1.0"));
80+
return Double.compare(q1, q2);
81+
}
82+
}
6383
}

0 commit comments

Comments
 (0)