This is an automated email from the git hooks/post-receive script. New commit to branch feature/8124-VerifConfigurationSource in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 156d4f352a35e730a3b10a043e84f7ea779ae553 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 16 10:35:37 2016 +0100 Pour le serveur, ajout du controller pour le service SqlScriptProducerService et d' l'injecteur pour SqlScripProducerRequest (see #8124). --- .../web/ObserveWebApplicationListener.java | 2 + .../v1/SqlScriptProducerServiceController.java | 20 ++++++++ .../injector/SqlScriptProducerRequestInjector.java | 53 ++++++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java index 0ce1488..7b454d3 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java @@ -29,6 +29,7 @@ import fr.ird.observe.application.web.injector.ObserveClassInjector; import fr.ird.observe.application.web.injector.ObserveDataSourceConfigurationInjector; import fr.ird.observe.application.web.injector.ObserveDtoInjector; import fr.ird.observe.application.web.injector.ObserveReferenceSetRequestInjector; +import fr.ird.observe.application.web.injector.SqlScriptProducerRequestInjector; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestConstants; import fr.ird.observe.services.dto.ObserveDbUserDto; import org.apache.commons.logging.Log; @@ -67,6 +68,7 @@ public class ObserveWebApplicationListener implements WebMotionServerListener { context.addInjector(new ObserveDtoInjector(gson)); context.addInjector(new ObserveReferenceSetRequestInjector(gson)); context.addInjector(new DateInjector(ObserveDataSourceConfigurationRestConstants.DATE_FORMAT)); + context.addInjector(new SqlScriptProducerRequestInjector(gson)); context.addConverter(new ObserveDtoConverter(gson), ObserveDbUserDto.class); context.getServletContext().setAttribute( diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java new file mode 100644 index 0000000..ab33c4c --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java @@ -0,0 +1,20 @@ +package fr.ird.observe.application.web.controller.v1; + +import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.SqlScriptProducerService; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class SqlScriptProducerServiceController extends ObserveAuthenticatedServiceControllerSupport<SqlScriptProducerService> implements SqlScriptProducerService { + + public SqlScriptProducerServiceController() { + super(SqlScriptProducerService.class); + } + + @Override + public byte[] produceSqlScript(SqlScriptProducerRequest request) { + return service.produceSqlScript(request); + } + +} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java new file mode 100644 index 0000000..03a5eeb --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java @@ -0,0 +1,53 @@ +package fr.ird.observe.application.web.injector; + +import com.google.common.base.Preconditions; +import com.google.gson.Gson; +import fr.ird.observe.services.service.SqlScriptProducerRequest; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.debux.webmotion.server.call.Call; +import org.debux.webmotion.server.handler.ExecutorParametersInjectorHandler; +import org.debux.webmotion.server.mapping.Mapping; + +import java.lang.reflect.Type; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class SqlScriptProducerRequestInjector implements ExecutorParametersInjectorHandler.Injector { + + /** Logger. */ + private static final Log log = LogFactory.getLog(SqlScriptProducerRequestInjector.class); + + protected final Gson gson; + + public SqlScriptProducerRequestInjector(Gson gson) { + this.gson = gson; + } + + @Override + public Object getValue(Mapping mapping, Call call, String name, Class<?> type, Type generic) { + + SqlScriptProducerRequest sqlScriptProducerRequest = null; + + if (type.equals(SqlScriptProducerRequest.class)) { + + Call.ParameterTree parameterTree = call.getParameterTree().getObject().get(name); + + Preconditions.checkNotNull(parameterTree, "Le paramètre " + name + " n'as pas été trouvé, recompiler (parameter)!"); + + String gsonContent = ((String[]) parameterTree.getValue())[0]; + + sqlScriptProducerRequest = gson.fromJson(gsonContent, SqlScriptProducerRequest.class); + + if (log.isInfoEnabled()) { + log.info("Inject sqlScriptProducerRequest: " + sqlScriptProducerRequest); + } + + } + + return sqlScriptProducerRequest; + + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.