@@ -137,102 +137,25 @@ void testErrorDisappearsAgainWhenWebConfigClassRemovesAndAddsVersioningConfig()
137137
138138 assertEquals (0 , diagnostics .size ());
139139 }
140+
141+ @ Test
142+ void testControllerReconciledOnlyOnce () throws Exception {
143+ String webConfigUri = directory .toPath ().resolve ("src/main/java/com/example/demo/apiversioning/WebConfig.java" ).toUri ().toString ();
144+ String controllerUri = directory .toPath ().resolve ("src/main/java/com/example/demo/apiversioning/TestController.java" ).toUri ().toString ();
145+
146+ TestFileScanListener fileScanListener = new TestFileScanListener ();
147+ indexer .getJavaIndexer ().setFileScanListener (fileScanListener );
148+
149+ CompletableFuture <Void > updateFuture = indexer .updateDocuments (new String [] {controllerUri , webConfigUri }, "test triggered" );
150+ updateFuture .get (5 , TimeUnit .SECONDS );
151+
152+ // check if the controller has been re-scanned
153+ fileScanListener .assertScannedUri (webConfigUri , 1 );
154+ fileScanListener .assertScannedUri (controllerUri , 1 );
155+ fileScanListener .assertFileScanCount (2 );
156+ }
157+
158+
140159
141160
142- // @Test
143- // void testErrorOnNotReferencedFeignConfigClass() throws Exception {
144- // String docUri = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignConfigNotRegistered.java").toUri().toString();
145- //
146- // PublishDiagnosticsParams diagnosticsResult = harness.getDiagnostics(docUri);
147- // List<Diagnostic> diagnostics = diagnosticsResult.getDiagnostics();
148- //
149- // assertEquals(1, diagnostics.size());
150- // assertEquals(Boot2JavaProblemType.MISSING_CONFIGURATION_ANNOTATION.getCode(), diagnostics.get(0).getCode().getLeft());
151- // }
152- //
153- // @Test
154- // void testErrorGoesAwayWhenFeignClientMentionsFeignConfig() throws Exception {
155- // String feignClientDocUri = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignClientExample.java").toUri().toString();
156- // String feignConfigRegisterd = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignConfigExample.java").toUri().toString();
157- // String feignConfigNotRegisterd = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignConfigNotRegistered.java").toUri().toString();
158- //
159- // // now change the config class source code and update doc
160- // TestFileScanListener fileScanListener = new TestFileScanListener();
161- // indexer.getJavaIndexer().setFileScanListener(fileScanListener);
162- //
163- // String feignClientSource = FileUtils.readFileToString(UriUtil.toFile(feignClientDocUri), Charset.defaultCharset());
164- // String updatedFeignClientSource = feignClientSource.replace("@FeignClient(name = \"stores\", configuration = FeignConfigExample.class)",
165- // "@FeignClient(name = \"stores\", configuration = {FeignConfigNotRegistered.class, FeignConfigExample.class})");
166- //
167- // CompletableFuture<Void> updateFuture = indexer.updateDocument(feignClientDocUri, updatedFeignClientSource, "test triggered");
168- // updateFuture.get(5, TimeUnit.SECONDS);
169- //
170- // // check if the bean registrar files have been re-scanned
171- // fileScanListener.assertScannedUri(feignClientDocUri, 1);
172- // fileScanListener.assertScannedUri(feignConfigNotRegisterd, 1);
173- // fileScanListener.assertScannedUri(feignConfigRegisterd, 1);
174- // fileScanListener.assertFileScanCount(3);
175- //
176- // // check diagnostics result
177- // PublishDiagnosticsParams diagnosticsResult = harness.getDiagnostics(feignConfigNotRegisterd);
178- // List<Diagnostic> diagnostics = diagnosticsResult.getDiagnostics();
179- // assertEquals(0, diagnostics.size());
180- // }
181- //
182- // @Test
183- // void testErrorAppearsWhenFeignClientNotMentionsFeignConfigAnymore() throws Exception {
184- // String feignClientDocUri = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignClientExample.java").toUri().toString();
185- // String feignConfigRegisterd = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignConfigExample.java").toUri().toString();
186- //
187- // // now change the config class source code and update doc
188- // TestFileScanListener fileScanListener = new TestFileScanListener();
189- // indexer.getJavaIndexer().setFileScanListener(fileScanListener);
190- //
191- // String feignClientSource = FileUtils.readFileToString(UriUtil.toFile(feignClientDocUri), Charset.defaultCharset());
192- // String updatedFeignClientSource = feignClientSource.replace("@FeignClient(name = \"stores\", configuration = FeignConfigExample.class)",
193- // "@FeignClient(name = \"stores\")");
194- //
195- // CompletableFuture<Void> updateFuture = indexer.updateDocument(feignClientDocUri, updatedFeignClientSource, "test triggered");
196- // updateFuture.get(5, TimeUnit.SECONDS);
197- //
198- // // check if the bean registrar files have been re-scanned
199- // fileScanListener.assertScannedUri(feignClientDocUri, 1);
200- // fileScanListener.assertScannedUri(feignConfigRegisterd, 1);
201- // fileScanListener.assertFileScanCount(2);
202- //
203- // // check diagnostics result
204- // PublishDiagnosticsParams diagnosticsResult = harness.getDiagnostics(feignConfigRegisterd);
205- // List<Diagnostic> diagnostics = diagnosticsResult.getDiagnostics();
206- // assertEquals(1, diagnostics.size());
207- // assertEquals(Boot2JavaProblemType.MISSING_CONFIGURATION_ANNOTATION.getCode(), diagnostics.get(0).getCode().getLeft());
208- // }
209- //
210- // @Test
211- // void testErrorAppearsWhenFeignClientAnnotationDoesAwayEntirely() throws Exception {
212- // String feignClientDocUri = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignClientExample.java").toUri().toString();
213- // String feignConfigRegisterd = directory.toPath().resolve("src/main/java/com/example/feign/demo/FeignConfigExample.java").toUri().toString();
214- //
215- // // now change the config class source code and update doc
216- // TestFileScanListener fileScanListener = new TestFileScanListener();
217- // indexer.getJavaIndexer().setFileScanListener(fileScanListener);
218- //
219- // String feignClientSource = FileUtils.readFileToString(UriUtil.toFile(feignClientDocUri), Charset.defaultCharset());
220- // String updatedFeignClientSource = feignClientSource.replace("@FeignClient(name = \"stores\", configuration = FeignConfigExample.class)",
221- // "");
222- //
223- // CompletableFuture<Void> updateFuture = indexer.updateDocument(feignClientDocUri, updatedFeignClientSource, "test triggered");
224- // updateFuture.get(5, TimeUnit.SECONDS);
225- //
226- // // check if the bean registrar files have been re-scanned
227- // fileScanListener.assertScannedUri(feignClientDocUri, 1);
228- // fileScanListener.assertScannedUri(feignConfigRegisterd, 1);
229- // fileScanListener.assertFileScanCount(2);
230- //
231- // // check diagnostics result
232- // PublishDiagnosticsParams diagnosticsResult = harness.getDiagnostics(feignConfigRegisterd);
233- // List<Diagnostic> diagnostics = diagnosticsResult.getDiagnostics();
234- // assertEquals(1, diagnostics.size());
235- // assertEquals(Boot2JavaProblemType.MISSING_CONFIGURATION_ANNOTATION.getCode(), diagnostics.get(0).getCode().getLeft());
236- // }
237- //
238161}
0 commit comments