Skip to content

Commit

Permalink
Merge pull request #35712 from phillip-kruger/dev-ui-lib-updates
Browse files Browse the repository at this point in the history
Upgrade vaadin and importmap and add caching
  • Loading branch information
phillip-kruger authored Sep 5, 2023
2 parents fea2cef + 4d6c0cd commit 8c74419
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 10 deletions.
4 changes: 2 additions & 2 deletions bom/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@
<pulsar-client.version>3.0.0</pulsar-client.version>
<async-http-client.version>2.12.3</async-http-client.version>
<!-- Dev UI -->
<importmap.version>1.0.9</importmap.version>
<vaadin.version>24.1.4</vaadin.version>
<importmap.version>1.0.10</importmap.version>
<vaadin.version>24.1.6</vaadin.version>
<lit.version>2.8.0</lit.version>
<lit-element.version>3.3.3</lit-element.version>
<lit-html.version>2.8.0</lit-html.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
import java.io.UncheckedIOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLConnection;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.Locale;
import java.util.Set;

import io.vertx.core.Handler;
Expand All @@ -22,7 +29,7 @@ public class MvnpmHandler implements Handler<RoutingContext> {

public MvnpmHandler(String root, Set<URL> mvnpmJars) {
this.root = root;
this.mvnpmLoader = new URLClassLoader(mvnpmJars.toArray(new URL[] {}));
this.mvnpmLoader = new URLClassLoader(mvnpmJars.toArray(URL[]::new));
}

@Override
Expand All @@ -37,20 +44,38 @@ public void handle(RoutingContext event) {
}

try {
InputStream is = mvnpmLoader.getResourceAsStream(BASE_DIR + fullPath);
if (is != null) {
byte[] contents = is.readAllBytes();
event.response()
.putHeader(HttpHeaders.CONTENT_TYPE, getContentType(fileName))
.end(Buffer.buffer(contents));
return;
URL url = mvnpmLoader.getResource(BASE_DIR + fullPath);
URLConnection openConnection = url.openConnection();
long lastModified = openConnection.getLastModified();
try (InputStream is = openConnection.getInputStream()) {
if (is != null) {
byte[] contents = is.readAllBytes();
event.response()
.putHeader(HttpHeaders.CONTENT_TYPE, getContentType(fileName))
.putHeader(HttpHeaders.CACHE_CONTROL, "public, immutable, max-age=31536000")
.putHeader(HttpHeaders.LAST_MODIFIED, formatDate(lastModified))
.putHeader("date", formatDate(LocalDateTime.now()))
.end(Buffer.buffer(contents));
return;
}
}
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
event.next();
}

private String formatDate(long m) {
Instant i = Instant.ofEpochMilli(m);
return formatDate(i);
}

private String formatDate(TemporalAccessor t) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH)
.withZone(ZoneId.of("GMT"));
return formatter.format(t);
}

private String getContentType(String filename) {
String f = filename.toLowerCase();
if (f.endsWith(DOT_JS)) {
Expand Down

0 comments on commit 8c74419

Please sign in to comment.