This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e06eddad7ce65bf22b73f6e2c5c769ad643eed29 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Sep 6 13:50:27 2016 +0200 Ajout de logs sur les proxy dans les services pour mesurer les temps --- .../services/rest/ObserveServiceFactoryRest.java | 39 +++++++++++++--------- .../services/topia/ObserveServiceFactoryTopia.java | 12 ++++++- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java index dd0abc9..8125a75 100644 --- a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java +++ b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java @@ -32,9 +32,9 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceFactorySupport; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRestConstants; -import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConnectionRest; import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; import fr.ird.observe.services.http.ObserveHttpError; @@ -48,6 +48,7 @@ import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.TimeLog; import java.io.IOException; import java.lang.reflect.InvocationHandler; @@ -69,8 +70,9 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactoryRest.class); + private static final TimeLog TIME_LOG = new TimeLog(ObserveServiceFactoryRest.class, 100, 1000); - protected final java.util.function.Supplier<Gson> gsonSupplier = new ObserveDtoGsonSupplier() { + protected final Supplier<Gson> gsonSupplier = new ObserveDtoGsonSupplier() { @Override protected GsonBuilder getGsonBuilder(boolean prettyPrint) { @@ -237,30 +239,37 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl return null; } - ObserveRequest request = createRequest(method, methodName, args); + long t0 = TimeLog.getTime(); - ObserveResponse<?> response = responseBuilder.build(request, method.getGenericReturnType()); + Object result; + try { + ObserveRequest request = createRequest(method, methodName, args); - Object result = response.getResultObject(); + ObserveResponse<?> response = responseBuilder.build(request, method.getGenericReturnType()); - if (DataSourceService.class.equals(serviceClass)) { + result = response.getResultObject(); - if (OPEN_CONNECTION_METHOD_NAMES.contains(methodName)) { + if (DataSourceService.class.equals(serviceClass)) { - ObserveDataSourceConnection dataSourceConnection = (ObserveDataSourceConnection) result; + if (OPEN_CONNECTION_METHOD_NAMES.contains(methodName)) { - // On enregistre la connexion - observeServiceInitializer.setDataSourceConnection(dataSourceConnection); + ObserveDataSourceConnection dataSourceConnection = (ObserveDataSourceConnection) result; - // On supprime la configuration - observeServiceInitializer.setDataSourceConfiguration(null); + // On enregistre la connexion + observeServiceInitializer.setDataSourceConnection(dataSourceConnection); - } else if (CLOSE_CONNECTION_METHOD_NAMES.contains(methodName)) { + // On supprime la configuration + observeServiceInitializer.setDataSourceConfiguration(null); - // On supprime la connexion - observeServiceInitializer.setDataSourceConnection(null); + } else if (CLOSE_CONNECTION_METHOD_NAMES.contains(methodName)) { + // On supprime la connexion + observeServiceInitializer.setDataSourceConnection(null); + + } } + } finally { + TIME_LOG.log(t0, "invokeMethod", methodName); } return result; diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java index 95ebd88..d08d1b4 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceFactoryTopia.java @@ -32,8 +32,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceFactorySupport; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; -import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConnectionTopia; import fr.ird.observe.services.dto.UnauthorizedException; import fr.ird.observe.services.spi.NoDataAccess; @@ -44,6 +44,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; import fr.ird.observe.services.spi.WriteReferentialPermission; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.TimeLog; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; @@ -61,6 +62,7 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { protected static final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newServiceImplementationTypesCache("Topia"); /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactoryTopia.class); + private static final TimeLog TIME_LOG = new TimeLog(ObserveServiceFactoryTopia.class, 100, 1000); @Override public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { @@ -234,6 +236,8 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { } protected Object invokeMethod(Method method, Object... args) throws Throwable { + + long t0 = TimeLog.getTime(); try { return method.invoke(target, args); } catch (InvocationTargetException e) { @@ -241,6 +245,10 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { log.error("Error in method " + method.getName(), e); } throw e.getCause(); + } finally { + + TIME_LOG.log(t0, "invokeMethod", method.getName()); + } } @@ -248,6 +256,7 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { ObserveTopiaApplicationContext source = serviceContext.getTopiaApplicationContext(); + long t0 = TimeLog.getTime(); try (ObserveTopiaPersistenceContext topiaPersistenceContext = source.newPersistenceContext()) { @@ -268,6 +277,7 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { serviceContext.setTopiaPersistenceContext(null); + TIME_LOG.log(t0, "invokeMethodWithTransaction", method.getName()); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.