branch develop updated (232a048 -> bf2234a)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 232a048 Merge branch 'feature/7603' into develop new bf2234a ajout de l'injecteur pour le type Class The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit bf2234a89883e652037d894c6682fc8afc09c150 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Oct 16 16:53:18 2015 +0200 ajout de l'injecteur pour le type Class Summary of changes: .../web/ObserveWebApplicationListener.java | 2 + .../web/injector/ObserveClassInjector.java | 46 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveClassInjector.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit bf2234a89883e652037d894c6682fc8afc09c150 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Oct 16 16:53:18 2015 +0200 ajout de l'injecteur pour le type Class --- .../web/ObserveWebApplicationListener.java | 2 + .../web/injector/ObserveClassInjector.java | 46 ++++++++++++++++++++++ 2 files changed, 48 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 5f90a88..764a415 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 @@ -24,6 +24,7 @@ package fr.ird.observe.application.web; import com.google.gson.Gson; import fr.ird.observe.application.web.converter.ObserveDtoConverter; +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.services.dto.ObserveDbUserDto; @@ -59,6 +60,7 @@ public class ObserveWebApplicationListener implements WebMotionServerListener { Gson gson = applicationContext.getGsonSupplier().get(); context.addInjector(new ObserveDataSourceConfigurationInjector(gson)); + context.addInjector(new ObserveClassInjector()); context.addInjector(new ObserveDtoInjector(gson)); context.addConverter(new ObserveDtoConverter(gson), ObserveDbUserDto.class); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveClassInjector.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveClassInjector.java new file mode 100644 index 0000000..31cd878 --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/ObserveClassInjector.java @@ -0,0 +1,46 @@ +package fr.ird.observe.application.web.injector; + +import com.google.common.base.Preconditions; +import com.google.gson.JsonParseException; +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 ObserveClassInjector implements ExecutorParametersInjectorHandler.Injector { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveDataSourceConfigurationInjector.class); + + @Override + public Object getValue(Mapping mapping, Call call, String name, Class<?> type, Type generic) { + + Class<?> result = null; + + if (type.equals(Class.class)) { + + Call.ParameterTree parameterTree = call.getParameterTree().getObject().get(name); + Preconditions.checkNotNull(parameterTree, "Le paramètre " + name + " n'as pas été trouvé, recompiler (parameter)!"); + + String className = ((String[]) parameterTree.getValue())[0]; + className = className.replace("\"", ""); + try { + result = Class.forName(className); + } catch (ClassNotFoundException cnfe) { + if (log.isErrorEnabled()) { + log.error("An exception occurred", cnfe); + } + throw new JsonParseException("Class not found: " + className, cnfe); + } + + } + + return result; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm