]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add note about dependency injection in BrowserWindowOpener JavaDocs (#11495)
authorTatu Lund <tatu@vaadin.com>
Thu, 14 Mar 2019 19:24:59 +0000 (21:24 +0200)
committerLeif Åstrand <legioth@gmail.com>
Thu, 14 Mar 2019 19:24:59 +0000 (21:24 +0200)
If BrowserWindowOpener is used with constructor using Class<? extends UI> as parameter, it will have UI provider with generated url. This will not match UI beans in contextual storage and hence newly created UI will not be managed bean. Due this, injection to new UI instance will not happen. If you are using CDI , BrowserWindowOpener(String) constructor needs to be used.

server/src/main/java/com/vaadin/server/BrowserWindowOpener.java

index ebc31c06cc7bea617894690e55406a0f16b9a48b..0e59784d76f2ccefe2a8e52fafea7abeab127434 100644 (file)
@@ -70,7 +70,12 @@ public class BrowserWindowOpener extends AbstractExtension {
     /**
      * Creates a window opener that will open windows containing the provided UI
      * class.
-     *
+     * <p>
+     * Note: The new UI instance will not work with dependency injection (CDI and
+     * Spring). Use {@link BrowserWindowOpener(String)} instead.
+     * {@code VaadinServlet.getCurrent().getServletContext().getContextPath()} gives 
+     * the current context path.
+     * 
      * @param uiClass
      *            the UI class that should be opened when the extended component
      *            is clicked
@@ -82,6 +87,11 @@ public class BrowserWindowOpener extends AbstractExtension {
     /**
      * Creates a window opener that will open windows containing the provided UI
      * using the provided path.
+     * <p>
+     * Note: The new UI instance will not work with dependency injection (CDI
+     * and Spring). Use {@link BrowserWindowOpener(String)} instead.
+     * {@code VaadinServlet.getCurrent().getServletContext().getContextPath()} gives 
+     * the current context path.
      *
      * @param uiClass
      *            the UI class that should be opened when the extended component