Skip to content

Commit 21a4145

Browse files
authored
feat: execute Hilla tasks whenever Hilla is available (#20567)
Execute Hilla tasks (TaskGenerateOpenAPI and TaskGenerateEndpoint) whenever Hilla is available on the classpath. These tasks should determine the required actions themselves, instead of Flow trying to do it. Fixes #20289 Fixes #18800
1 parent f5c972a commit 21a4145

File tree

5 files changed

+30
-26
lines changed

5 files changed

+30
-26
lines changed

flow-plugins/flow-plugin-base/src/test/java/com/vaadin/flow/plugin/base/BuildFrontendUtilTest.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import com.vaadin.experimental.FeatureFlags;
3737
import com.vaadin.flow.di.Lookup;
38+
import com.vaadin.flow.internal.hilla.EndpointRequestUtil;
3839
import com.vaadin.flow.server.Constants;
3940
import com.vaadin.flow.server.ExecutionFailedException;
4041
import com.vaadin.flow.server.InitParameters;
@@ -151,10 +152,10 @@ public void should_useHillaEngine_withNodeUpdater()
151152
.when(endpointGeneratorTaskFactory)
152153
.createTaskGenerateEndpoint(Mockito.any());
153154

154-
try (MockedStatic<FrontendUtils> util = Mockito
155-
.mockStatic(FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
156-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
157-
Mockito.any())).thenReturn(true);
155+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
156+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
157+
util.when(() -> EndpointRequestUtil.isHillaAvailable(Mockito.any()))
158+
.thenReturn(true);
158159
BuildFrontendUtil.runNodeUpdater(adapter);
159160
}
160161

flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeTasks.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
import com.vaadin.flow.di.Lookup;
3939
import com.vaadin.flow.internal.UsageStatistics;
40+
import com.vaadin.flow.internal.hilla.EndpointRequestUtil;
4041
import com.vaadin.flow.server.Constants;
4142
import com.vaadin.flow.server.ExecutionFailedException;
4243
import com.vaadin.flow.server.Mode;
@@ -315,8 +316,7 @@ private void addGenerateServiceWorkerTask(Options options,
315316
}
316317

317318
private void addEndpointServicesTasks(Options options) {
318-
if (!FrontendUtils.isHillaUsed(options.getFrontendDirectory(),
319-
options.getClassFinder())) {
319+
if (!EndpointRequestUtil.isHillaAvailable(options.getClassFinder())) {
320320
return;
321321
}
322322
Lookup lookup = options.getLookup();

flow-server/src/test/java/com/vaadin/flow/server/frontend/NodeTasksHillaTest.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.mockito.junit.MockitoRule;
3232

3333
import com.vaadin.flow.di.Lookup;
34+
import com.vaadin.flow.internal.hilla.EndpointRequestUtil;
3435
import com.vaadin.flow.server.ExecutionFailedException;
3536
import com.vaadin.flow.server.frontend.scanner.ClassFinder;
3637
import com.vaadin.flow.server.frontend.scanner.ClassFinder.DefaultClassFinder;
@@ -117,10 +118,10 @@ public void should_useHillaEngine_whenEnabled()
117118
Mockito.doReturn(endpointGeneratorTaskFactory).when(options.getLookup())
118119
.lookup(EndpointGeneratorTaskFactory.class);
119120

120-
try (MockedStatic<FrontendUtils> util = Mockito
121-
.mockStatic(FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
122-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
123-
Mockito.any())).thenReturn(true);
121+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
122+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
123+
util.when(() -> EndpointRequestUtil.isHillaAvailable(Mockito.any()))
124+
.thenReturn(true);
124125

125126
new NodeTasks(options).execute();
126127
}

vaadin-dev-server/src/test/java/com/vaadin/base/devserver/DevModeEndpointTest.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.vaadin.base.devserver.startup.DevModeStartupListener;
2323
import com.vaadin.flow.di.ResourceProvider;
2424
import com.vaadin.flow.internal.DevModeHandlerManager;
25+
import com.vaadin.flow.internal.hilla.EndpointRequestUtil;
2526
import com.vaadin.flow.server.VaadinServlet;
2627
import com.vaadin.flow.server.VaadinServletContext;
2728
import com.vaadin.flow.server.frontend.EndpointGeneratorTaskFactory;
@@ -107,10 +108,10 @@ public void should_generateOpenApi() throws Exception {
107108
.toFile();
108109

109110
Assert.assertFalse(generatedOpenApiJson.exists());
110-
try (MockedStatic<FrontendUtils> util = Mockito
111-
.mockStatic(FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
112-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
113-
Mockito.any())).thenReturn(true);
111+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
112+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
113+
util.when(() -> EndpointRequestUtil.isHillaAvailable(Mockito.any()))
114+
.thenReturn(true);
114115
devModeStartupListener.onStartup(classes, servletContext);
115116
handler = getDevModeHandler();
116117
waitForDevServer();
@@ -139,10 +140,10 @@ public void should_generateTs_files() throws Exception {
139140

140141
assertFalse(ts1.exists());
141142
assertFalse(ts2.exists());
142-
try (MockedStatic<FrontendUtils> util = Mockito
143-
.mockStatic(FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
144-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
145-
Mockito.any())).thenReturn(true);
143+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
144+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
145+
util.when(() -> EndpointRequestUtil.isHillaAvailable(Mockito.any()))
146+
.thenReturn(true);
146147
devModeStartupListener.onStartup(classes, servletContext);
147148
handler = getDevModeHandler();
148149
waitForDevServer();

vaadin-dev-server/src/test/java/com/vaadin/base/devserver/startup/DevModeInitializerTest.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import com.vaadin.flow.component.dependency.JsModule;
3737
import com.vaadin.flow.component.page.AppShellConfigurator;
3838
import com.vaadin.flow.di.Lookup;
39+
import com.vaadin.flow.internal.hilla.EndpointRequestUtil;
3940
import com.vaadin.flow.router.Route;
4041
import com.vaadin.flow.server.InitParameters;
4142
import com.vaadin.flow.server.LoadDependenciesOnStartup;
@@ -352,10 +353,10 @@ public void should_generateOpenApi_when_EndpointPresents()
352353
javaSourceFolder.getRoot().getAbsolutePath());
353354

354355
Assert.assertFalse(generatedOpenApiJson.exists());
355-
try (MockedStatic<FrontendUtils> util = Mockito.mockStatic(
356-
FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
357-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
358-
Mockito.any())).thenReturn(true);
356+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
357+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
358+
util.when(() -> EndpointRequestUtil
359+
.isHillaAvailable(Mockito.any())).thenReturn(true);
359360
devModeStartupListener.onStartup(classes, servletContext);
360361
handler = getDevModeHandler();
361362
waitForDevServer();
@@ -420,10 +421,10 @@ public void should_generateTs_files() throws Exception {
420421
System.setProperty("vaadin." + CONNECT_JAVA_SOURCE_FOLDER_TOKEN,
421422
javaSourceFolder.getRoot().getAbsolutePath());
422423

423-
try (MockedStatic<FrontendUtils> util = Mockito.mockStatic(
424-
FrontendUtils.class, Mockito.CALLS_REAL_METHODS)) {
425-
util.when(() -> FrontendUtils.isHillaUsed(Mockito.any(),
426-
Mockito.any())).thenReturn(true);
424+
try (MockedStatic<EndpointRequestUtil> util = Mockito.mockStatic(
425+
EndpointRequestUtil.class, Mockito.CALLS_REAL_METHODS)) {
426+
util.when(() -> EndpointRequestUtil
427+
.isHillaAvailable(Mockito.any())).thenReturn(true);
427428
devModeStartupListener.onStartup(classes, servletContext);
428429
handler = getDevModeHandler();
429430
waitForDevServer();

0 commit comments

Comments
 (0)