}
private void checkLegacyPropertyToString() {
- // Verify that the default value has not changed without also
- // updating logic here
- assert DEFAULT_LEGACY_PROPERTY_TO_STRING == LegacyProperyToStringMode.WARNING;
-
String param = getApplicationOrSystemProperty(
- Constants.SERVLET_PARAMETER_LEGACY_PROPERTY_TOSTRING, "warning");
-
- if ("true".equals(param)) {
- legacyPropertyToStringMode = LegacyProperyToStringMode.ENABLED;
- } else if ("false".equals(param)) {
- legacyPropertyToStringMode = LegacyProperyToStringMode.DISABLED;
- } else {
- if (!"warning".equals(param)) {
- getLogger()
- .log(Level.WARNING,
- Constants.WARNING_UNKNOWN_LEGACY_PROPERTY_TOSTRING_VALUE,
- param);
-
+ Constants.SERVLET_PARAMETER_LEGACY_PROPERTY_TOSTRING,
+ DEFAULT_LEGACY_PROPERTY_TO_STRING.getPropertyString());
+
+ for (LegacyProperyToStringMode mode : LegacyProperyToStringMode
+ .values()) {
+ if (mode.getPropertyString().equals(param)) {
+ legacyPropertyToStringMode = mode;
+ return;
}
- legacyPropertyToStringMode = DEFAULT_LEGACY_PROPERTY_TO_STRING;
}
+
+ getLogger()
+ .log(Level.WARNING,
+ Constants.WARNING_UNKNOWN_LEGACY_PROPERTY_TOSTRING_VALUE,
+ param);
+
+ legacyPropertyToStringMode = DEFAULT_LEGACY_PROPERTY_TO_STRING;
}
@Override
*/
@Deprecated
public enum LegacyProperyToStringMode {
- DISABLED, WARNING, ENABLED;
+ DISABLED("false"), WARNING("warning"), ENABLED("true");
+
+ private final String propertyString;
+
+ private LegacyProperyToStringMode(String propertyString) {
+ this.propertyString = propertyString;
+ }
+
+ /**
+ * Gets the string that should be used in e.g. web.xml for selecting
+ * this mode.
+ *
+ * @return the property value
+ */
+ public String getPropertyString() {
+ return propertyString;
+ }
+
+ @Override
+ public String toString() {
+ // Used by VaadinServlet.readConfigurationAnnotation()
+ return getPropertyString();
+ }
public boolean useLegacyMode() {
return this == WARNING || this == ENABLED;
Assert.assertEquals(MockUIContainingServlet.class, uiClass);
}
+ @Test
+ public void testLegacyEnabledAnnotation() throws ServletException {
+ VaadinServlet servlet = new LegacyPropertyEnabledTestServlet();
+ servlet.init(new MockServletConfig());
+ DeploymentConfiguration configuration = servlet.getService()
+ .getDeploymentConfiguration();
+
+ Assert.assertEquals(LegacyProperyToStringMode.ENABLED,
+ configuration.getLegacyPropertyToStringMode());
+ }
+
+ @Test
+ public void testLegacyWarningAnnotation() throws ServletException {
+ VaadinServlet servlet = new LegacyPropertyWarningTestServlet();
+ servlet.init(new MockServletConfig());
+ DeploymentConfiguration configuration = servlet.getService()
+ .getDeploymentConfiguration();
+
+ Assert.assertEquals(LegacyProperyToStringMode.WARNING,
+ configuration.getLegacyPropertyToStringMode());
+ }
+
@Test
public void testValuesOverriddenForServlet() throws ServletException {
Properties servletInitParams = new Properties();
class TestServlet extends VaadinServlet {
}
+
+@VaadinServletConfiguration(productionMode = true, ui = MockUIContainingServlet.class, legacyPropertyToStringMode = LegacyProperyToStringMode.WARNING)
+class LegacyPropertyWarningTestServlet extends VaadinServlet {
+
+}
+
+@VaadinServletConfiguration(productionMode = true, ui = MockUIContainingServlet.class, legacyPropertyToStringMode = LegacyProperyToStringMode.ENABLED)
+class LegacyPropertyEnabledTestServlet extends VaadinServlet {
+
+}