Browse Source

SystemMessagesProvider could be added with servlet annotation

Change-Id: I188880399ce7b9193711c8d9de545333e56cd629
feature/bootstrap-annotation
elmot 8 years ago
parent
commit
312fbb77fa

+ 5
- 1
.gitignore View File

@@ -85,4 +85,8 @@ scripts/*.pyc
result

.sass-cache
phantomjsdriver.log
phantomjsdriver.log

#IDEA
*.iml
.idea

+ 39
- 0
server/src/com/vaadin/annotations/SystemMessagesMod.java View File

@@ -0,0 +1,39 @@
/*
* Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.annotations;

import com.vaadin.server.BootstrapListener;
import com.vaadin.server.SystemMessagesProvider;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Installs customized SystemMessagesProvider for VaadinServlet.
*/

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface SystemMessagesMod {
public Class<? extends SystemMessagesProvider> value();

}

+ 10
- 0
server/src/com/vaadin/server/VaadinServlet.java View File

@@ -50,6 +50,7 @@ import javax.servlet.http.HttpServletResponse;

import com.google.gwt.thirdparty.guava.common.base.Charsets;
import com.google.gwt.thirdparty.guava.common.io.Files;
import com.vaadin.annotations.SystemMessagesMod;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.annotations.VaadinServletConfiguration.InitParameterName;
import com.vaadin.sass.internal.ScssStylesheet;
@@ -315,6 +316,15 @@ public class VaadinServlet extends HttpServlet implements Constants {
VaadinServletService service = new VaadinServletService(this,
deploymentConfiguration);
service.init();
SystemMessagesMod systemMessagesMod = this.getClass().getAnnotation(SystemMessagesMod.class);
if(systemMessagesMod != null) {
try {
service.setSystemMessagesProvider(systemMessagesMod.value().newInstance());
} catch (Exception e) {
throw new ServiceException(e);
}
}

return service;
}


Loading…
Cancel
Save