Skip to content

Commit 2b65fef

Browse files
authored
Merge pull request #46 from xdev-software/develop
Release
2 parents 96c7efc + f0b272e commit 2b65fef

File tree

8 files changed

+54
-13
lines changed

8 files changed

+54
-13
lines changed

CHANGELOG.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1+
# 1.0.2
2+
* Vaadin
3+
* ``XHRReloadVaadinServiceInitListener``
4+
* Improved performance by not building element every request and cloning it instead
5+
* If an error occurs while the script is added to the document the error is now logged (once at WARN; all subsequent ones at DEBUG)
6+
17
# 1.0.1
28
* Vaadin
3-
* Fix ``SecureVaadinRequestCache`` ignoring non-optional url parameters
9+
* Fix ``SecureVaadinRequestCache`` ignoring non-optional url parameters
410

511
# 1.0.0
612
_Initial production ready release_

codec-sha256/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<dependency>
8989
<groupId>org.junit.jupiter</groupId>
9090
<artifactId>junit-jupiter</artifactId>
91-
<version>5.12.1</version>
91+
<version>5.12.2</version>
9292
<scope>test</scope>
9393
</dependency>
9494
</dependencies>

crypto-symmetric/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<dependency>
8989
<groupId>org.junit.jupiter</groupId>
9090
<artifactId>junit-jupiter</artifactId>
91-
<version>5.12.1</version>
91+
<version>5.12.2</version>
9292
<scope>test</scope>
9393
</dependency>
9494
</dependencies>

demo/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
<dependency>
169169
<groupId>org.junit</groupId>
170170
<artifactId>junit-bom</artifactId>
171-
<version>5.12.1</version>
171+
<version>5.12.2</version>
172172
<type>pom</type>
173173
<scope>import</scope>
174174
</dependency>

oauth2-oidc-remember-me/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
<dependency>
123123
<groupId>org.junit.jupiter</groupId>
124124
<artifactId>junit-jupiter</artifactId>
125-
<version>5.12.1</version>
125+
<version>5.12.2</version>
126126
<scope>test</scope>
127127
</dependency>
128128
</dependencies>

oauth2-oidc/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
<dependency>
142142
<groupId>org.junit.jupiter</groupId>
143143
<artifactId>junit-jupiter</artifactId>
144-
<version>5.12.1</version>
144+
<version>5.12.2</version>
145145
<scope>test</scope>
146146
</dependency>
147147
</dependencies>

vaadin/src/main/java/software/xdev/sse/vaadin/xhrreload/XHRReloadVaadinServiceInitListener.java

+41-6
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818
import java.io.IOException;
1919
import java.io.InputStream;
2020
import java.io.UncheckedIOException;
21+
import java.util.Optional;
2122
import java.util.regex.Pattern;
2223

2324
import org.jsoup.nodes.Document;
2425
import org.jsoup.nodes.Element;
2526
import org.slf4j.Logger;
2627
import org.slf4j.LoggerFactory;
28+
import org.slf4j.event.Level;
2729

2830
import com.vaadin.flow.server.ServiceInitEvent;
31+
import com.vaadin.flow.server.VaadinRequest;
2932
import com.vaadin.flow.server.VaadinServiceInitListener;
3033
import com.vaadin.flow.server.communication.IndexHtmlRequestListener;
3134

@@ -36,7 +39,8 @@ public class XHRReloadVaadinServiceInitListener implements VaadinServiceInitList
3639
{
3740
private static final Logger LOG = LoggerFactory.getLogger(XHRReloadVaadinServiceInitListener.class);
3841

39-
protected final String scriptContents;
42+
protected final Element scriptElement;
43+
protected boolean scriptAttachErrorAlreadyLogged;
4044

4145
public XHRReloadVaadinServiceInitListener(final XHRReloadConfig config)
4246
{
@@ -48,11 +52,21 @@ public XHRReloadVaadinServiceInitListener(final XHRReloadConfig config)
4852
}
4953

5054
// Remove comments
51-
this.scriptContents = Pattern.compile(
55+
final String scriptContents = Pattern.compile(
5256
"\\/\\*[\\s\\S]*?\\*\\/|(?<=[^:])\\/\\/.*|^\\/\\/.*")
5357
.matcher(new String(is.readAllBytes()))
5458
.replaceAll("")
5559
.trim();
60+
61+
if(scriptContents.isBlank())
62+
{
63+
LOG.error("Script loaded from {} is empty", config.getResourceLocation());
64+
}
65+
66+
this.scriptElement = new Element("script")
67+
.attr("type", "text/javascript")
68+
.html(scriptContents);
69+
LOG.trace("Built scriptElement: {}", this.scriptElement);
5670
}
5771
catch(final IOException e)
5872
{
@@ -65,11 +79,32 @@ public void serviceInit(final ServiceInitEvent event)
6579
{
6680
event.addIndexHtmlRequestListener((IndexHtmlRequestListener)resp -> {
6781
final Document document = resp.getDocument();
68-
6982
final Element body = document.body();
70-
body.prependElement("script")
71-
.attr("type", "text/javascript")
72-
.html(this.scriptContents);
83+
84+
try
85+
{
86+
body.prependChild(this.scriptElement.clone());
87+
}
88+
catch(final Exception ex)
89+
{
90+
LOG.atLevel(this.scriptAttachErrorAlreadyLogged
91+
? Level.DEBUG
92+
: Level.WARN)
93+
.setMessage(
94+
"Failed to attach XHRReloadScript. {}"
95+
+ "Details: path={} body={}")
96+
.addArgument(!this.scriptAttachErrorAlreadyLogged
97+
? "Subsequent errors will be logged at DEBUG. "
98+
: "")
99+
.addArgument(() ->
100+
Optional.ofNullable(resp.getVaadinRequest())
101+
.map(VaadinRequest::getPathInfo)
102+
.orElse("?"))
103+
.addArgument(body)
104+
.addArgument(ex)
105+
.log();
106+
this.scriptAttachErrorAlreadyLogged = true;
107+
}
73108
});
74109

75110
LOG.debug("Applied serviceInit");

web-sidecar-actuator/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
<dependency>
126126
<groupId>org.junit.jupiter</groupId>
127127
<artifactId>junit-jupiter</artifactId>
128-
<version>5.12.1</version>
128+
<version>5.12.2</version>
129129
<scope>test</scope>
130130
</dependency>
131131
</dependencies>

0 commit comments

Comments
 (0)