Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 9a7cfe83 by tchemit at 2019-01-14T14:32:19Z update changlog - - - - - 7930297f by tchemit at 2019-01-14T14:33:08Z Revert referential write service + improve some code - - - - - 8 changed files: - .mvn/gitlab-cache/milestones/674086-issues.json - + .mvn/gitlab-cache/milestones/750347-issues.json - + .mvn/gitlab-cache/milestones/750347.json - CHANGELOG.md - + dto/src/main/java/fr/ird/observe/dto/referential/common/SpeciesGroupHelper.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchReleaseServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/referential/ReferentialService.java Changes: ===================================== .mvn/gitlab-cache/milestones/674086-issues.json ===================================== @@ -270,16 +270,16 @@ "state": "active" }, "assignee": { - "_id": 1111318, - "_username": "pcauquil", - "_name": "Pascal Cauquil", + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", "_state": "active", "_darkScheme": false, "_isAdmin": false, "_canCreateGroup": false, "_canCreateProject": false, "_canCreateTeam": false, - "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" }, "author": { "_id": 1111318, @@ -294,7 +294,7 @@ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" }, "state": "opened", - "updatedAt": "Dec 4, 2018 1:51:17 PM", + "updatedAt": "Jan 10, 2019 3:07:42 PM", "createdAt": "Oct 5, 2018 9:28:31 PM" }, { @@ -366,16 +366,16 @@ "state": "active" }, "assignee": { - "_id": 1111318, - "_username": "pcauquil", - "_name": "Pascal Cauquil", + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", "_state": "active", "_darkScheme": false, "_isAdmin": false, "_canCreateGroup": false, "_canCreateProject": false, "_canCreateTeam": false, - "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" }, "author": { "_id": 1111318, @@ -390,7 +390,7 @@ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" }, "state": "opened", - "updatedAt": "Dec 4, 2018 1:51:16 PM", + "updatedAt": "Jan 8, 2019 3:46:42 PM", "createdAt": "Oct 5, 2018 1:31:54 PM" }, { @@ -587,7 +587,7 @@ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" }, "state": "opened", - "updatedAt": "Dec 4, 2018 1:50:50 PM", + "updatedAt": "Jan 11, 2019 10:05:19 AM", "createdAt": "Mar 27, 2018 3:13:54 PM" } ] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/750347-issues.json ===================================== @@ -0,0 +1,179 @@ +[ + { + "id": 17290869, + "iid": 1197, + "projectId": 2722779, + "title": "Impossible de voir les utilisations de référentiel si connecté en mode referentiel", + "description": "Le service ``fr.ird.observe.services.service.referential.ReferentialService#findAllUsages`` :\n\n```\n@ReadReferentialPermission\n@ReadDataPermission\n\u003cR extends ReferentialDto\u003e ImmutableSetDtoMap\u003cDtoReference\u003e findAllUsages(Class\u003cR\u003e beanType, String id);\n```\n\nrequière un droit de lecture des données, et donc ne fonctionne pas.\n\nIl y a d\u0027autres cas du même style qui empêche le bon fonctionnement du système.\n\nSe pose la question de savoir si on peut modifier des données métier même en étant connecté référentiel. En effet par exemple lors de la suppression d\u0027un référentiel, il se peut qu\u0027on demande d\u0027effectuer un remplacement ce qui impacte des données métiers.\n\nPour le moment je vais autoriser le cas, à voir si on ne pourrait pas être plus fin en interdisant les actions qui vont modifier des données métier lors d\u0027une modification d\u0027un référentiel.\n\nVoir #1196", + "labels": [ + "Anomalie", + "Contrat AZTI-2017" + ], + "milestone": { + "id": 750347, + "iid": 132, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.2", + "description": "", + "startDate": "Jan 3, 2019 1:00:00 AM", + "state": "active" + }, + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" + }, + "state": "closed", + "updatedAt": "Jan 14, 2019 12:05:39 PM", + "createdAt": "Jan 12, 2019 4:29:22 PM" + }, + { + "id": 17163582, + "iid": 1196, + "projectId": 2722779, + "title": "Tentative d\u0027ouverture d\u0027une base avec des droits \"référentiel\" échoue", + "description": "Les comptes de type \"référentiel\" ne permettent que de lire le référentiel/le mettre à jour dans une base locale.\r\n\r\nDonc lorsqu\u0027on tente d\u0027ouvrir une base locale (en mode serveur par exemple) avec un login référentiel, l\u0027arbre doit montrer les 3 entrées de référentiel (commun, longline, seine).\r\n\r\nOr actuellement en 7.0.1, cela ne s\u0027ouvre pas et provoque une exception :\r\n\r\n\r\n\r\nLog serveur :\r\n\r\n```\r\nINFO 2019-01-08T12:23:43,432 [ajp-nio-8009-exec-103] ObserveDataSourceConfigurationInjector : 71 - Inject dataSourceConfiguration: ObserveDataSourceConfigurationRest{label\u003dServeur Distant, serverUrl\u003dhttps://vmot5-proto.ird.fr/observeweb/api/v1, login\u003dreferentielweb, password\u003d***, optionalDatabaseName\u003dnull, modelVersion\u003d7.0}\r\nINFO 2019-01-08T12:23:43,433 [ajp-nio-8009-exec-103] ObserveDtoInjector : 98 - Inject observeDto: ObserveDataSourceConfigurationRest{label\u003dServeur Distant, serverUrl\u003dhttps://vmot5-proto.ird.fr/observeweb/api/v1, login\u003dreferentielweb, password\u003d***, optionalDatabaseName\u003dnull, modelVersion\u003d7.0}\r\nINFO 2019-01-08T12:23:43,435 [ajp-nio-8009-exec-103] ObserveWebSecurityApplicationContext : 171 - Try to find data source configuration for: referentielweb--production\r\nINFO 2019-01-08T12:23:43,436 [ajp-nio-8009-exec-103] ObserveWebSecurityApplicationContext : 183 - Will use database configuration: ObserveDataSourceConfigurationTopiaPG{label\u003dreferentielweb--production, jdbcUrl\u003djdbc:postgresql:observe, username\u003dreferentiel, password\u003d***, useSsl\u003dtrue}\r\nINFO 2019-01-08T12:23:43,436 [ajp-nio-8009-exec-103] ObserveServiceMainFactory : 107 - New service created: fr.ird.observe.services.local.service.DataSourceServiceLocal@774a2135\r\nINFO 2019-01-08T12:23:44,103 [ajp-nio-8009-exec-105] ObserveDataSourceConfigurationInjector : 71 - Inject dataSourceConfiguration: ObserveDataSourceConfigurationRest{label\u003dServeur Distant, serverUrl\u003dhttps://vmot5-proto.ird.fr/observeweb/api/v1, login\u003dreferentielweb, password\u003d***, optionalDatabaseName\u003dnull, modelVersion\u003d7.0}\r\nINFO 2019-01-08T12:23:44,104 [ajp-nio-8009-exec-105] ObserveDtoInjector : 98 - Inject observeDto: ObserveDataSourceConfigurationRest{label\u003dServeur Distant, serverUrl\u003dhttps://vmot5-proto.ird.fr/observeweb/api/v1, login\u003dreferentielweb, password\u003d***, optionalDatabaseName\u003dnull, modelVersion\u003d7.0}\r\nINFO 2019-01-08T12:23:44,105 [ajp-nio-8009-exec-105] ObserveWebSecurityApplicationContext : 171 - Try to find data source configuration for: referentielweb--production\r\nINFO 2019-01-08T12:23:44,105 [ajp-nio-8009-exec-105] ObserveWebSecurityApplicationContext : 183 - Will use database configuration: ObserveDataSourceConfigurationTopiaPG{label\u003dreferentielweb--production, jdbcUrl\u003djdbc:postgresql:observe, username\u003dreferentiel, password\u003d***, useSsl\u003dtrue}\r\nINFO 2019-01-08T12:23:44,105 [ajp-nio-8009-exec-105] ObserveServiceMainFactory : 107 - New service created: fr.ird.observe.services.local.service.DataSourceServiceLocal@1aa5cfa\r\nINFO 2019-01-08T12:23:44,130 [ajp-nio-8009-exec-105] ObserveTopiaApplicationContextFactory : 156 - Create Postgresql topia application context: ObserveDataSourceConfigurationTopiaPG{label\u003dreferentielweb--production, jdbcUrl\u003djdbc:postgresql:observe, username\u003dreferentiel, password\u003d***, useSsl\u003dtrue}\r\nINFO 2019-01-08T12:23:44,131 [ajp-nio-8009-exec-105] TopiaServiceSupportImpl : 99 - instantiated service migration: org.nuiton.topia.service.migration.TopiaMigrationService@3205cea1\r\nINFO 2019-01-08T12:23:44,132 [ajp-nio-8009-exec-105] TopiaServiceSupportImpl : 99 - instantiated service sqlScriptGenerator: org.nuiton.topia.service.script.TopiaSqlScriptGeneratorServiceImpl@6f0fea0a\r\nINFO 2019-01-08T12:23:44,132 [ajp-nio-8009-exec-105] TopiaServiceSupportImpl : 125 - will init service sqlScriptGenerator with configuration {}\r\nINFO 2019-01-08T12:23:44,132 [ajp-nio-8009-exec-105] TopiaServiceSupportImpl : 125 - will init service migration with configuration {}\r\nINFO 2019-01-08T12:23:44,133 [ajp-nio-8009-exec-105] AbstractTopiaApplicationContext : 148 - Schema initialization disabled\r\nINFO 2019-01-08T12:23:44,315 [ajp-nio-8009-exec-105] HibernateProvider : 168 - will start hibernate with configuration {hibernate.hikari.autoCommit\u003dfalse, hibernate.hikari.minimumIdle\u003d2, hibernate.use_sql_comments\u003dfalse, hibernate.connection.driver_class\u003dorg.postgresql.Driver, hibernate.dialect\u003dorg.hibernate.dialect.PostgreSQL9Dialect, hibernate.format_sql\u003dfalse, hibernate.ejb.naming_strategy\u003dorg.hibernate.cfg.ImprovedNamingStrategy, hibernate.connection.username\u003dreferentiel, hibernate.connection.url\u003djdbc:postgresql:observe, hibernate.connection.provider_class\u003dorg.hibernate.hikaricp.internal.HikariCPConnectionProvider, hibernate.connection.password\u003dref8obstuna, hibernate.bytecode.provider\u003dbytebuddy, hibernate.hikari.maximumPoolSize\u003d20}\r\nINFO 2019-01-08T12:23:44,320 [ajp-nio-8009-exec-105] ObserveWebSecurityAuthenticationTokenCache : 75 - Add authenticationToken: 3c9c306e-faa7-4592-b95c-6702d3164e90 for data source configuration: ObserveDataSourceConfigurationTopiaPG{label\u003dreferentielweb--production, jdbcUrl\u003djdbc:postgresql:observe, username\u003dreferentiel, password\u003d***, useSsl\u003dtrue}\r\nINFO 2019-01-08T12:23:44,490 [ajp-nio-8009-exec-106] ObserveDtoInjector : 98 - Inject observeDto: fr.ird.observe.services.service.data.NavigationRequest@a78a445\r\nINFO 2019-01-08T12:23:44,491 [ajp-nio-8009-exec-106] ObserveServiceMainFactory : 107 - New service created: fr.ird.observe.services.local.service.data.NavigationServiceLocal@59d9e2a6\r\nERROR 2019-01-08T12:23:45,233 [ajp-nio-8009-exec-106] ObserveServiceFactoryLocal$ObserveServiceInvocationHandler : 245 - Error in method getNavigation\r\nfr.ird.observe.services.security.UnauthorizedException: null\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryLocal.java:218) ~[ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat com.sun.proxy.$Proxy415.getAllTripSeine(Unknown Source) ~[?:?]\r\n\tat fr.ird.observe.services.local.service.data.NavigationServiceLocal.getNavigation(NavigationServiceLocal.java:70) ~[NavigationServiceLocal.class:7.0.1]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_71]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryLocal.java:242) [ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryLocal.java:263) [ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryLocal.java:230) [ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat com.sun.proxy.$Proxy405.getNavigation(Unknown Source) [?:?]\r\n\tat fr.ird.observe.server.controller.v1.data.GeneratedNavigationServiceRestApi.getNavigation(GeneratedNavigationServiceRestApi.java:46) [GeneratedNavigationServiceRestApi.class:7.0.1]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_71]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processAction(ExecutorMethodInvokerHandler.java:255) [ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.handle(ExecutorMethodInvokerHandler.java:225) [ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionFilter.doProcess(WebMotionFilter.java:73) [WebMotionFilter.class:?]\r\n\tat org.debux.webmotion.server.WebMotionFilter.doProcess(WebMotionFilter.java:61) [WebMotionFilter.class:?]\r\n\tat fr.ird.observe.server.ObserveWebMotionFilter.inject(ObserveWebMotionFilter.java:68) [ObserveWebMotionFilter.class:7.0.1]\r\n\tat sun.reflect.GeneratedMethodAccessor2370.invoke(Unknown Source) ~[?:?]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processFilter(ExecutorMethodInvokerHandler.java:310) [ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.handle(ExecutorMethodInvokerHandler.java:222) [ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler.handle(ExecutorMethodInvokerHandler.java:120) [ExecutorMethodInvokerHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.chainHandlers(WebMotionMainHandler.java:270) [WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.handleExecutors(WebMotionMainHandler.java:260) [WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.handle(WebMotionMainHandler.java:196) [WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionServer.doAction(WebMotionServer.java:159) [WebMotionServer.class:?]\r\n\tat org.debux.webmotion.server.WebMotionServer.doFilter(WebMotionServer.java:136) [WebMotionServer.class:?]\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526) [catalina.jar:8.0.5]\r\n\tat org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:794) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) [tomcat-coyote.jar:8.0.5]\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_71]\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_71]\r\n\tat java.lang.Thread.run(Thread.java:745) [?:1.8.0_71]\r\nERROR 2019-01-08T12:23:45,237 [ajp-nio-8009-exec-106] WebMotionMainHandler : 256 - Error 500 : Error during invoke method for action fr.ird.observe.server.controller.v1.data.NavigationServiceRestApi on method getNavigation on /observeweb/api/v1/data/NavigationService/getNavigation\r\norg.debux.webmotion.server.WebMotionException: Error during invoke method for action fr.ird.observe.server.controller.v1.data.NavigationServiceRestApi on method getNavigation\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processAction(ExecutorMethodInvokerHandler.java:283) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.handle(ExecutorMethodInvokerHandler.java:225) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionFilter.doProcess(WebMotionFilter.java:73) ~[WebMotionFilter.class:?]\r\n\tat org.debux.webmotion.server.WebMotionFilter.doProcess(WebMotionFilter.java:61) ~[WebMotionFilter.class:?]\r\n\tat fr.ird.observe.server.ObserveWebMotionFilter.inject(ObserveWebMotionFilter.java:68) ~[ObserveWebMotionFilter.class:7.0.1]\r\n\tat sun.reflect.GeneratedMethodAccessor2370.invoke(Unknown Source) ~[?:?]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processFilter(ExecutorMethodInvokerHandler.java:310) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.handle(ExecutorMethodInvokerHandler.java:222) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler.handle(ExecutorMethodInvokerHandler.java:120) ~[ExecutorMethodInvokerHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.chainHandlers(WebMotionMainHandler.java:270) ~[WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.handleExecutors(WebMotionMainHandler.java:260) ~[WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionMainHandler.handle(WebMotionMainHandler.java:196) ~[WebMotionMainHandler.class:?]\r\n\tat org.debux.webmotion.server.WebMotionServer.doAction(WebMotionServer.java:159) ~[WebMotionServer.class:?]\r\n\tat org.debux.webmotion.server.WebMotionServer.doFilter(WebMotionServer.java:136) ~[WebMotionServer.class:?]\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) ~[catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) ~[catalina.jar:8.0.5]\r\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) ~[catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.5]\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526) [catalina.jar:8.0.5]\r\n\tat org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:794) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) [tomcat-coyote.jar:8.0.5]\r\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) [tomcat-coyote.jar:8.0.5]\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_71]\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_71]\r\n\tat java.lang.Thread.run(Thread.java:745) [?:1.8.0_71]\r\nCaused by: java.lang.reflect.InvocationTargetException\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_71]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processAction(ExecutorMethodInvokerHandler.java:255) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\t... 32 more\r\nCaused by: fr.ird.observe.services.security.UnauthorizedException\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryLocal.java:218) ~[ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat com.sun.proxy.$Proxy415.getAllTripSeine(Unknown Source) ~[?:?]\r\n\tat fr.ird.observe.services.local.service.data.NavigationServiceLocal.getNavigation(NavigationServiceLocal.java:70) ~[NavigationServiceLocal.class:7.0.1]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_71]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invokeMethod(ObserveServiceFactoryLocal.java:242) ~[ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invokeMethodWithTransaction(ObserveServiceFactoryLocal.java:263) ~[ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat fr.ird.observe.services.local.ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.invoke(ObserveServiceFactoryLocal.java:230) ~[ObserveServiceFactoryLocal$ObserveServiceInvocationHandler.class:7.0.1]\r\n\tat com.sun.proxy.$Proxy405.getNavigation(Unknown Source) ~[?:?]\r\n\tat fr.ird.observe.server.controller.v1.data.GeneratedNavigationServiceRestApi.getNavigation(GeneratedNavigationServiceRestApi.java:46) ~[GeneratedNavigationServiceRestApi.class:7.0.1]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_71]\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_71]\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_71]\r\n\tat java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_71]\r\n\tat org.debux.webmotion.server.handler.ExecutorMethodInvokerHandler$RunnableHandler.processAction(ExecutorMethodInvokerHandler.java:255) ~[ExecutorMethodInvokerHandler$RunnableHandler.class:?]\r\n\t... 32 more\r\n```\r\n\r\nL\u0027utilisation de ce même login pour mettre à jour des référentiels locaux, ou pour générer des bases locales vierges, fonctionne très bien par contre.", + "labels": [], + "milestone": { + "id": 750347, + "iid": 132, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.2", + "description": "", + "startDate": "Jan 3, 2019 1:00:00 AM", + "state": "active" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" + }, + "state": "closed", + "updatedAt": "Jan 12, 2019 4:29:22 PM", + "createdAt": "Jan 8, 2019 12:28:18 PM" + }, + { + "id": 17161863, + "iid": 1194, + "projectId": 2722779, + "title": "Nommage des fichier de log du serveur 7.0.1", + "description": "Les fichiers de log de la 7.0.1 continuent d\u0027être suffixés 7.0.0.\n\nServeur : \n\n\nLogs :\n\n\nCôté client, ils sont bien suffixés 7.0.1", + "labels": [ + "Anomalie", + "Contrat AZTI-2017" + ], + "milestone": { + "id": 750347, + "iid": 132, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.2", + "description": "", + "startDate": "Jan 3, 2019 1:00:00 AM", + "state": "active" + }, + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" + }, + "state": "opened", + "updatedAt": "Jan 10, 2019 7:38:48 AM", + "createdAt": "Jan 8, 2019 11:37:49 AM" + }, + { + "id": 17161807, + "iid": 1193, + "projectId": 2722779, + "title": "[UI REFERNETIEL] Personne : impossible d\u0027afficher les éléments liés à une personne", + "description": "UI référence : impossible d\u0027afficher les éléments liés à une personne (en mode serveur)\n\n\n\nLog client vierge : [observe-7.0.1.log](/uploads/56f9731936f95fa39d68549a24533935/observe-7.0.1.log)\n\nLog serveur (pertinent) : [observeweb-7.0.0.log](/uploads/71e80e3444ece3775a9e03c932387a20/observeweb-7.0.0.log)\n\nNote : les fichiers de log côté serveur de la 7.0.1 semblent continuer à être nommés xxx-7.0.0, mais c\u0027est bien la 7.0.1 qui tourne : \n", + "labels": [ + "Anomalie", + "Contrat AZTI-2017" + ], + "milestone": { + "id": 750347, + "iid": 132, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.2", + "description": "", + "startDate": "Jan 3, 2019 1:00:00 AM", + "state": "active" + }, + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_darkScheme": false, + "_isAdmin": false, + "_canCreateGroup": false, + "_canCreateProject": false, + "_canCreateTeam": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon" + }, + "state": "closed", + "updatedAt": "Jan 11, 2019 10:05:19 AM", + "createdAt": "Jan 8, 2019 11:35:18 AM" + } +] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/750347.json ===================================== @@ -0,0 +1,10 @@ +{ + "id": 750347, + "iid": 132, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.2", + "description": "", + "startDate": "Jan 3, 2019 1:00:00 AM", + "state": "active" +} \ No newline at end of file ===================================== CHANGELOG.md ===================================== @@ -1,7 +1,7 @@ # ObServe changelog * Author [Tony Chemit](mailto:dev@tchemit.fr) - * Last generated at 2019-01-02 15:53. + * Last generated at 2019-01-14 12:20. ## Version [8.0-alpha-4](https://gitlab.com/ultreiaio/ird-observe/milestones/115) Seconde partie du troisième lot du contrat IRD-2018-01-V8. contient fonctionnalités avancées. ===================================== dto/src/main/java/fr/ird/observe/dto/referential/common/SpeciesGroupHelper.java ===================================== @@ -0,0 +1,36 @@ +package fr.ird.observe.dto.referential.common; + +/*- + * #%L + * ObServe :: Dto + * %% + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import java.util.Arrays; +import java.util.List; + +public class SpeciesGroupHelper extends GeneratedSpeciesGroupHelper { + //FIXME PROTECTED-ID + public static final List<String> SPECIES_GROUP_IDS = Arrays.asList( + "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712", + "fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461", + "fr.ird.referential.common.SpeciesGroup#1446014286433#0.6480183366605247", + "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075" + ); +} ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchReleaseServiceLocal.java ===================================== @@ -25,12 +25,12 @@ package fr.ird.observe.services.local.service.data.ps.observation; import fr.ird.observe.dto.data.ps.observation.SetSeineNonTargetCatchReleaseDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; +import fr.ird.observe.dto.referential.common.SpeciesGroupHelper; import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.data.ps.observation.NonTargetCatch; import fr.ird.observe.entities.data.ps.observation.SetSeine; import fr.ird.observe.services.local.service.ObserveServiceLocal; -import fr.ird.observe.services.local.service.referential.ReferentialServiceLocal; import fr.ird.observe.services.service.data.ps.observation.NonTargetCatchReleaseService; import java.util.stream.Collectors; @@ -46,7 +46,7 @@ public class NonTargetCatchReleaseServiceLocal extends ObserveServiceLocal imple return SPECIES_SPI.toReferentialReferenceSet(setSeine.getNonTargetCatch().stream() .map(NonTargetCatch::getSpecies) .distinct() - .filter(s -> ReferentialServiceLocal.SPECIES_GROUP_IDS.contains(s.getSpeciesGroup().getTopiaId())) + .filter(s -> SpeciesGroupHelper.SPECIES_GROUP_IDS.contains(s.getSpeciesGroup().getTopiaId())) .collect(Collectors.toList()), getReferentialLocale(), null); } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -41,6 +41,7 @@ import fr.ird.observe.dto.referential.ReferenceStatus; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.common.SpeciesDto; import fr.ird.observe.dto.referential.common.SpeciesGroupDto; +import fr.ird.observe.dto.referential.common.SpeciesGroupHelper; import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.Entities; @@ -82,7 +83,6 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript; import org.nuiton.version.Version; import org.nuiton.version.Versions; -import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.LinkedHashSet; @@ -99,13 +99,6 @@ import java.util.Set; */ public class ReferentialServiceLocal extends ObserveServiceLocal implements ReferentialService { - //FIXME PROTECTED-ID - public static final List<String> SPECIES_GROUP_IDS = Arrays.asList( - "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712", - "fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461", - "fr.ird.referential.common.SpeciesGroup#1446014286433#0.6480183366605247", - "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075" - ); private static final Logger log = LogManager.getLogger(ReferentialServiceLocal.class); @Override @@ -152,12 +145,24 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe @Override public ImmutableSet<SpeciesGroupDto> loadSensibleSpeciesGroup() { ImmutableSet.Builder<SpeciesGroupDto> result = ImmutableSet.builder(); - for (String speciesGroupId : SPECIES_GROUP_IDS) { + for (String speciesGroupId : SpeciesGroupHelper.SPECIES_GROUP_IDS) { result.add(loadSpeciesGroup(speciesGroupId)); } return result.build(); } + @Override + public <D extends ReferentialDto> D loadDto(Class<D> type, String id) { + ReferentialDtoEntityContext<D, ?, ?> spi = DbModelHelper.fromReferentialDto(type); + ObserveReferentialEntity entity = loadEntity(type, id); + D dto = spi.toDto(serviceContext.getReferentialLocale(), entity); + dto.setVersion(entity.getTopiaVersion()); + dto.setCreateDate(entity.getTopiaCreateDate()); + dto.setLastUpdateDate(entity.getLastUpdateDate()); + dto.setStatus(ReferenceStatus.valueOf(entity.getStatus().name())); + return dto; + } + @Override public <D extends ReferentialDto> Form<D> loadForm(Class<D> type, String id) { ReferentialDtoEntityContext<D, ?, ?> spi = DbModelHelper.fromReferentialDto(type); ===================================== services/src/main/java/fr/ird/observe/services/service/referential/ReferentialService.java ===================================== @@ -87,7 +87,11 @@ public interface ReferentialService extends ObserveService { @ReadReferentialPermission @Get - <R extends ReferentialDto> Form<R> loadForm(Class<R> type, String id); + <D extends ReferentialDto> D loadDto(Class<D> type, String id); + + @ReadReferentialPermission + @Get + <D extends ReferentialDto> Form<D> loadForm(Class<D> type, String id); @Get @ReadReferentialPermission @@ -95,36 +99,37 @@ public interface ReferentialService extends ObserveService { @Get @WriteReferentialPermission - <R extends ReferentialDto> Form<R> preCreate(Class<R> type); + <D extends ReferentialDto> Form<D> preCreate(Class<D> type); @WriteReferentialPermission @Write @Post - <R extends ReferentialDto> SaveResultDto save(R bean); + <D extends ReferentialDto> SaveResultDto save(D bean); @WriteReferentialPermission + @WriteDataPermission @Write @Delete - <R extends ReferentialDto> void delete(Class<R> type, String id); + <D extends ReferentialDto> void delete(Class<D> type, String id); @Post @WriteReferentialPermission + @WriteDataPermission @Write - <E extends ReferentialDto> void replaceReference(Class<E> beanType, String idToReplace, String replaceId); + <D extends ReferentialDto> void replaceReference(Class<D> beanType, String idToReplace, String replaceId); @Post(useMultiPartForm = true) @ReadReferentialPermission - <R extends ReferentialDto> ImmutableSetDtoMap<DtoReference> findAllUsages(Class<R> beanType, String id); + <D extends ReferentialDto> ImmutableSetDtoMap<DtoReference> findAllUsages(Class<D> beanType, String id); @Get @ReadReferentialPermission - <R extends ReferentialDto> boolean exists(Class<R> type, String id); + <D extends ReferentialDto> boolean exists(Class<D> type, String id); @ReadReferentialPermission @Post ImmutableSetStringMap getReferentialIds(); - @ReadReferentialPermission @ReadDataPermission @Post(useMultiPartForm = true) View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/63d7a5dec79439880408a415677... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/63d7a5dec79439880408a415677... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT