From e6b01164dfa38217f1b43a1e568f3522793251f8 Mon Sep 17 00:00:00 2001 From: Andreas Kohlbecker Date: Fri, 10 Feb 2017 16:43:57 +0100 Subject: [PATCH] ref --- .../Jetty Launcher/cdm-vaadin - run.launch | 6 +- .../config}/CdmVaadinConfiguration.java | 29 +++++++++- .../java/eu/etaxonomy/cdm/addon/config/README | 6 ++ .../vaadin/container/TaxonNodeContainer.java | 12 +++- .../presenter/AuthenticationPresenter.java | 2 - .../cdm/vaadin/ui/ConceptRelationshipUI.java | 4 +- .../ui/ConceptRelationshipUIRedirect.java | 4 +- .../etaxonomy/cdm/vaadin/ui/DbStatusUI.java | 4 +- .../cdm/vaadin/ui/DbStatusUIRedirect.java | 4 +- .../cdm/vaadin/ui/StatusEditorUI.java | 4 +- .../vaadin/util/CdmSpringContextHelper.java | 6 +- .../webapp/WEB-INF/applicationContext.xml | 56 ++++++++++++------- .../webapp/WEB-INF/cdm-vaadin-servlet.xml | 7 +++ src/main/webapp/WEB-INF/web.xml | 19 ++++++- .../etaxonomy/cdm/vaadin/ui/CheckTestUI.java | 4 +- .../eu/etaxonomy/cdm/vaadin/ui/D3CTreeUI.java | 4 +- .../cdm/vaadin/ui/NavigatorTestUI.java | 4 +- .../webapp/WEB-INF/applicationContext.xml | 5 +- 18 files changed, 130 insertions(+), 50 deletions(-) rename src/main/java/eu/etaxonomy/cdm/{vaadin/conf => addon/config}/CdmVaadinConfiguration.java (53%) create mode 100644 src/main/java/eu/etaxonomy/cdm/addon/config/README diff --git a/ide/eclipse/Jetty Launcher/cdm-vaadin - run.launch b/ide/eclipse/Jetty Launcher/cdm-vaadin - run.launch index c8def112..fb631bf2 100644 --- a/ide/eclipse/Jetty Launcher/cdm-vaadin - run.launch +++ b/ide/eclipse/Jetty Launcher/cdm-vaadin - run.launch @@ -46,9 +46,13 @@ + + + + - + diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/conf/CdmVaadinConfiguration.java b/src/main/java/eu/etaxonomy/cdm/addon/config/CdmVaadinConfiguration.java similarity index 53% rename from src/main/java/eu/etaxonomy/cdm/vaadin/conf/CdmVaadinConfiguration.java rename to src/main/java/eu/etaxonomy/cdm/addon/config/CdmVaadinConfiguration.java index b8ad8007..3c50dc2f 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/conf/CdmVaadinConfiguration.java +++ b/src/main/java/eu/etaxonomy/cdm/addon/config/CdmVaadinConfiguration.java @@ -6,9 +6,10 @@ * The contents of this file are subject to the Mozilla Public License Version 1.1 * See LICENSE.TXT at the top of this package for the full license terms. */ -package eu.etaxonomy.cdm.vaadin.conf; +package eu.etaxonomy.cdm.addon.config; import org.apache.log4j.Logger; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.vaadin.spring.annotation.EnableVaadin; @@ -20,12 +21,36 @@ import com.vaadin.spring.annotation.EnableVaadin; * */ @Configuration +@ComponentScan(basePackages={"eu.etaxonomy.cdm.vaadin"}) @EnableVaadin // this imports VaadinConfiguration public class CdmVaadinConfiguration { - public static final Logger logger = Logger.getLogger(CdmVaadinConfiguration.class); +// @Configuration +// @EnableVaadin +// @Order(value=1) +// public static class CdmVaadinEnabler { +// +// public CdmVaadinEnabler() { +// logger.debug("CdmVaadinConfiguration enabled"); +// } +// +// } +// +// @Configuration +// @ComponentScan(basePackages={"eu.etaxonomy.cdm.vaadin"}) +// @Order(value=2) +// public static class CdmVaadinScanner { +// +// public CdmVaadinScanner() { +// logger.debug("CdmVaadinScanner enabled"); +// } +// +// } + + + public CdmVaadinConfiguration() { logger.debug("CdmVaadinConfiguration enabled"); } diff --git a/src/main/java/eu/etaxonomy/cdm/addon/config/README b/src/main/java/eu/etaxonomy/cdm/addon/config/README new file mode 100644 index 00000000..6b672813 --- /dev/null +++ b/src/main/java/eu/etaxonomy/cdm/addon/config/README @@ -0,0 +1,6 @@ +The package eu.etaxonomy.cdm.addon.config is an extension point where +addon-modules can place their Spring configuration classes. +A component scan defined in cdmlib-remote-webapp will find them: + + + \ No newline at end of file diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/container/TaxonNodeContainer.java b/src/main/java/eu/etaxonomy/cdm/vaadin/container/TaxonNodeContainer.java index 67b01292..3f9b671e 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/container/TaxonNodeContainer.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/container/TaxonNodeContainer.java @@ -4,19 +4,25 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; + import com.vaadin.data.Item; import com.vaadin.data.util.HierarchicalContainer; +import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; -import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; public class TaxonNodeContainer extends HierarchicalContainer { private static final long serialVersionUID = 102401340698963360L; + public static final String LABEL = "titleCache"; + private Map itemCache = new HashMap<>(); + @Autowired + private ITaxonNodeService taxonNodeService; /** * Creates a new taxon node container * @param roots the root elements of the table @@ -49,14 +55,14 @@ public class TaxonNodeContainer extends HierarchicalContainer { */ public void addChildItems(UuidAndTitleCache parent) { if(itemCache.get(parent.getId()).equals(Boolean.FALSE)){ - Collection> children = CdmSpringContextHelper.getTaxonNodeService().listChildNodesAsUuidAndTitleCache(parent); + Collection> children = taxonNodeService.listChildNodesAsUuidAndTitleCache(parent); setChildrenAllowed(parent, !children.isEmpty()); for (UuidAndTitleCache child : children) { Item childItem = addItem(child); if(childItem!=null){ setParent(child, parent); } - Collection> grandChildren = CdmSpringContextHelper.getTaxonNodeService().listChildNodesAsUuidAndTitleCache(child); + Collection> grandChildren = taxonNodeService.listChildNodesAsUuidAndTitleCache(child); setChildrenAllowed(child, !grandChildren.isEmpty()); } itemCache.put(parent.getId(), true); diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/presenter/AuthenticationPresenter.java b/src/main/java/eu/etaxonomy/cdm/vaadin/presenter/AuthenticationPresenter.java index 319838a9..a86f5c05 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/presenter/AuthenticationPresenter.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/presenter/AuthenticationPresenter.java @@ -14,8 +14,6 @@ import eu.etaxonomy.cdm.vaadin.util.CdmVaadinAuthentication; import eu.etaxonomy.cdm.vaadin.util.CdmVaadinSessionUtilities; import eu.etaxonomy.cdm.vaadin.view.IAuthenticationComponent; - - public class AuthenticationPresenter implements IAuthenticationComponent.AuthenticationComponentListener{ @Override diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUI.java b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUI.java index dbb3cdd8..8b46aa6a 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUI.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUI.java @@ -29,7 +29,7 @@ import eu.etaxonomy.cdm.vaadin.view.ConceptRelationshipView; * */ @Theme("edit") -@SpringUI(path="/app/concept") +@SpringUI(path="concept") @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet") public class ConceptRelationshipUI extends AbstractAuthenticatedUI { @@ -39,7 +39,7 @@ public class ConceptRelationshipUI extends AbstractAuthenticatedUI { private final static Logger logger = Logger.getLogger(ConceptRelationshipUI.class); - @WebServlet(value = {"/*"}, asyncSupported = true) + @WebServlet(value = {"/app/*"}, asyncSupported = true) public static class Servlet extends SpringVaadinServlet { } diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUIRedirect.java b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUIRedirect.java index e8fcc436..36622090 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUIRedirect.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUIRedirect.java @@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.vaadin.view.ConceptRelationshipView; * */ @Theme("edit") -// @SpringUI(path="/app/concept") // not needed since this UI is used in the context of ConceptRelationshipUI +// @SpringUI(path="concept") // not needed since this UI is used in the context of ConceptRelationshipUI @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet") public class ConceptRelationshipUIRedirect extends AbstractAuthenticatedUI { @@ -36,7 +36,7 @@ public class ConceptRelationshipUIRedirect extends AbstractAuthenticatedUI { private final static Logger logger = Logger.getLogger(ConceptRelationshipUIRedirect.class); // not needed since this UI is used in the context of ConceptRelationshipUI -// @WebServlet(value = {"/*"}, asyncSupported = true) +// @WebServlet(value = {"/app/*"}, asyncSupported = true) // public static class Servlet extends SpringVaadinServlet { // } diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUI.java b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUI.java index 71c497af..0bdd5b81 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUI.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUI.java @@ -17,7 +17,7 @@ import eu.etaxonomy.cdm.vaadin.view.dbstatus.RedirectAfterLoginView; @Theme("macosx") @Title("CDM Board") -@SpringUI(path="/app/distribution") +@SpringUI(path="distribution") @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet") @SuppressWarnings("serial") public class DbStatusUI extends AbstractAuthenticatedUI{ @@ -26,7 +26,7 @@ public class DbStatusUI extends AbstractAuthenticatedUI{ private static final String FIRST_VIEW = "firstView"; - @WebServlet(urlPatterns = {"/*"}, name="DbStatusUIServlet", asyncSupported = true) + @WebServlet(urlPatterns = {"/app/*"}, name="DbStatusUIServlet", asyncSupported = true) public static class Servlet extends CdmVaadinConversationalServlet { } diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUIRedirect.java b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUIRedirect.java index 27ec3262..17746fb6 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUIRedirect.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/DbStatusUIRedirect.java @@ -11,7 +11,7 @@ import eu.etaxonomy.cdm.vaadin.view.dbstatus.RedirectAfterLoginView; @Theme("edit") @Title("CDM Board") -// @SpringUI(path="/app/distribution") // not needed since this UI is used in the context of DbStatusUI +// @SpringUI(path="distribution") // not needed since this UI is used in the context of DbStatusUI @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet") @SuppressWarnings("serial") public class DbStatusUIRedirect extends AbstractAuthenticatedUI{ @@ -19,7 +19,7 @@ public class DbStatusUIRedirect extends AbstractAuthenticatedUI{ private static final String FIRST_VIEW = "firstView"; // not needed since this UI is used in the context of DbStatusUI -// @WebServlet(value = {"/*"}, asyncSupported = true) +// @WebServlet(value = {"/app/*"}, asyncSupported = true) // public static class Servlet extends CdmVaadinConversationalServlet { // } diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/StatusEditorUI.java b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/StatusEditorUI.java index 8b7609d9..eacb3c21 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/ui/StatusEditorUI.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/ui/StatusEditorUI.java @@ -29,7 +29,7 @@ import eu.etaxonomy.cdm.vaadin.component.StatusComposite; * */ @Theme("edit") -@SpringUI(path="/app/editstatus") +@SpringUI(path="editstatus") @Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet") public class StatusEditorUI extends AbstractAuthenticatedUI { @@ -44,7 +44,7 @@ public class StatusEditorUI extends AbstractAuthenticatedUI { * @WebServlets is mapped to the root path. It is sufficient to configure one of the * servlets with this path see BookOfVaadin 5.9.5. Servlet Mapping with URL Patterns */ - @WebServlet(value = {"/*", "/VAADIN/*"}, asyncSupported = true) + @WebServlet(value = {"/app/*", "/VAADIN/*"}, asyncSupported = true) public static class Servlet extends SpringVaadinServlet { } diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmSpringContextHelper.java b/src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmSpringContextHelper.java index f6f79a1c..114e7d5f 100644 --- a/src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmSpringContextHelper.java +++ b/src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmSpringContextHelper.java @@ -34,9 +34,11 @@ import eu.etaxonomy.cdm.api.service.IVocabularyService; * been written to retrieve the beans given the bean name. * * @author c.mathew - * @deprecated no longer needed since vaadin-spring is being used + * + * TODO This class may no longer needed in a couple of cases since vaadin-spring + * is being used and spring beans can be injected now. + * */ -@Deprecated public class CdmSpringContextHelper { private final ApplicationContext context; diff --git a/src/main/webapp/WEB-INF/applicationContext.xml b/src/main/webapp/WEB-INF/applicationContext.xml index b99951cf..6abc0166 100644 --- a/src/main/webapp/WEB-INF/applicationContext.xml +++ b/src/main/webapp/WEB-INF/applicationContext.xml @@ -8,19 +8,29 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd "> - + - - + + + + - - + + + - + - + @@ -39,22 +49,30 @@ - - - + + + + + - + + + + + + - + - - - - + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/cdm-vaadin-servlet.xml b/src/main/webapp/WEB-INF/cdm-vaadin-servlet.xml index 721f3ab8..92e405f9 100644 --- a/src/main/webapp/WEB-INF/cdm-vaadin-servlet.xml +++ b/src/main/webapp/WEB-INF/cdm-vaadin-servlet.xml @@ -8,4 +8,11 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd "> + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 143208d0..9691bca0 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -4,6 +4,12 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> + + cdmlib-vaadin web-application instance cdmlib-vaadin @@ -50,7 +56,18 @@ charsetFilter /* - + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + +