Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

8 changed files:

Changes:

  • .mvn/gitlab-cache/milestones/674086-issues.json
    ... ... @@ -270,16 +270,16 @@
    270 270
           "state": "active"
    
    271 271
         },
    
    272 272
         "assignee": {
    
    273
    -      "_id": 1111318,
    
    274
    -      "_username": "pcauquil",
    
    275
    -      "_name": "Pascal Cauquil",
    
    273
    +      "_id": 166231,
    
    274
    +      "_username": "tchemit",
    
    275
    +      "_name": "Tony CHEMIT",
    
    276 276
           "_state": "active",
    
    277 277
           "_darkScheme": false,
    
    278 278
           "_isAdmin": false,
    
    279 279
           "_canCreateGroup": false,
    
    280 280
           "_canCreateProject": false,
    
    281 281
           "_canCreateTeam": false,
    
    282
    -      "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    282
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    283 283
         },
    
    284 284
         "author": {
    
    285 285
           "_id": 1111318,
    
    ... ... @@ -294,7 +294,7 @@
    294 294
           "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    295 295
         },
    
    296 296
         "state": "opened",
    
    297
    -    "updatedAt": "Dec 4, 2018 1:51:17 PM",
    
    297
    +    "updatedAt": "Jan 10, 2019 3:07:42 PM",
    
    298 298
         "createdAt": "Oct 5, 2018 9:28:31 PM"
    
    299 299
       },
    
    300 300
       {
    
    ... ... @@ -366,16 +366,16 @@
    366 366
           "state": "active"
    
    367 367
         },
    
    368 368
         "assignee": {
    
    369
    -      "_id": 1111318,
    
    370
    -      "_username": "pcauquil",
    
    371
    -      "_name": "Pascal Cauquil",
    
    369
    +      "_id": 166231,
    
    370
    +      "_username": "tchemit",
    
    371
    +      "_name": "Tony CHEMIT",
    
    372 372
           "_state": "active",
    
    373 373
           "_darkScheme": false,
    
    374 374
           "_isAdmin": false,
    
    375 375
           "_canCreateGroup": false,
    
    376 376
           "_canCreateProject": false,
    
    377 377
           "_canCreateTeam": false,
    
    378
    -      "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    378
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    379 379
         },
    
    380 380
         "author": {
    
    381 381
           "_id": 1111318,
    
    ... ... @@ -390,7 +390,7 @@
    390 390
           "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    391 391
         },
    
    392 392
         "state": "opened",
    
    393
    -    "updatedAt": "Dec 4, 2018 1:51:16 PM",
    
    393
    +    "updatedAt": "Jan 8, 2019 3:46:42 PM",
    
    394 394
         "createdAt": "Oct 5, 2018 1:31:54 PM"
    
    395 395
       },
    
    396 396
       {
    
    ... ... @@ -587,7 +587,7 @@
    587 587
           "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    588 588
         },
    
    589 589
         "state": "opened",
    
    590
    -    "updatedAt": "Dec 4, 2018 1:50:50 PM",
    
    590
    +    "updatedAt": "Jan 11, 2019 10:05:19 AM",
    
    591 591
         "createdAt": "Mar 27, 2018 3:13:54 PM"
    
    592 592
       }
    
    593 593
     ]
    \ No newline at end of file

  • .mvn/gitlab-cache/milestones/750347-issues.json
    1
    +[
    
    2
    +  {
    
    3
    +    "id": 17290869,
    
    4
    +    "iid": 1197,
    
    5
    +    "projectId": 2722779,
    
    6
    +    "title": "Impossible de voir les utilisations de référentiel si connecté en mode referentiel",
    
    7
    +    "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",
    
    8
    +    "labels": [
    
    9
    +      "Anomalie",
    
    10
    +      "Contrat AZTI-2017"
    
    11
    +    ],
    
    12
    +    "milestone": {
    
    13
    +      "id": 750347,
    
    14
    +      "iid": 132,
    
    15
    +      "projectId": 2722779,
    
    16
    +      "groupId": 0,
    
    17
    +      "title": "7.0.2",
    
    18
    +      "description": "",
    
    19
    +      "startDate": "Jan 3, 2019 1:00:00 AM",
    
    20
    +      "state": "active"
    
    21
    +    },
    
    22
    +    "assignee": {
    
    23
    +      "_id": 166231,
    
    24
    +      "_username": "tchemit",
    
    25
    +      "_name": "Tony CHEMIT",
    
    26
    +      "_state": "active",
    
    27
    +      "_darkScheme": false,
    
    28
    +      "_isAdmin": false,
    
    29
    +      "_canCreateGroup": false,
    
    30
    +      "_canCreateProject": false,
    
    31
    +      "_canCreateTeam": false,
    
    32
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    33
    +    },
    
    34
    +    "author": {
    
    35
    +      "_id": 166231,
    
    36
    +      "_username": "tchemit",
    
    37
    +      "_name": "Tony CHEMIT",
    
    38
    +      "_state": "active",
    
    39
    +      "_darkScheme": false,
    
    40
    +      "_isAdmin": false,
    
    41
    +      "_canCreateGroup": false,
    
    42
    +      "_canCreateProject": false,
    
    43
    +      "_canCreateTeam": false,
    
    44
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    45
    +    },
    
    46
    +    "state": "closed",
    
    47
    +    "updatedAt": "Jan 14, 2019 12:05:39 PM",
    
    48
    +    "createdAt": "Jan 12, 2019 4:29:22 PM"
    
    49
    +  },
    
    50
    +  {
    
    51
    +    "id": 17163582,
    
    52
    +    "iid": 1196,
    
    53
    +    "projectId": 2722779,
    
    54
    +    "title": "Tentative d\u0027ouverture d\u0027une base avec des droits \"référentiel\" échoue",
    
    55
    +    "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![image](/uploads/b483bd000b555002ee7f8128c393f1ab/image.png)\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.",
    
    56
    +    "labels": [],
    
    57
    +    "milestone": {
    
    58
    +      "id": 750347,
    
    59
    +      "iid": 132,
    
    60
    +      "projectId": 2722779,
    
    61
    +      "groupId": 0,
    
    62
    +      "title": "7.0.2",
    
    63
    +      "description": "",
    
    64
    +      "startDate": "Jan 3, 2019 1:00:00 AM",
    
    65
    +      "state": "active"
    
    66
    +    },
    
    67
    +    "author": {
    
    68
    +      "_id": 1111318,
    
    69
    +      "_username": "pcauquil",
    
    70
    +      "_name": "Pascal Cauquil",
    
    71
    +      "_state": "active",
    
    72
    +      "_darkScheme": false,
    
    73
    +      "_isAdmin": false,
    
    74
    +      "_canCreateGroup": false,
    
    75
    +      "_canCreateProject": false,
    
    76
    +      "_canCreateTeam": false,
    
    77
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    78
    +    },
    
    79
    +    "state": "closed",
    
    80
    +    "updatedAt": "Jan 12, 2019 4:29:22 PM",
    
    81
    +    "createdAt": "Jan 8, 2019 12:28:18 PM"
    
    82
    +  },
    
    83
    +  {
    
    84
    +    "id": 17161863,
    
    85
    +    "iid": 1194,
    
    86
    +    "projectId": 2722779,
    
    87
    +    "title": "Nommage des fichier de log du serveur 7.0.1",
    
    88
    +    "description": "Les fichiers de log de la 7.0.1 continuent d\u0027être suffixés 7.0.0.\n\nServeur : \n![image](/uploads/9592cf6049a04c8e664268b7f5603568/image.png)\n\nLogs :\n![image](/uploads/3bf20641945a6a1091fd71adc8531f4c/image.png)\n\nCôté client, ils sont bien suffixés 7.0.1",
    
    89
    +    "labels": [
    
    90
    +      "Anomalie",
    
    91
    +      "Contrat AZTI-2017"
    
    92
    +    ],
    
    93
    +    "milestone": {
    
    94
    +      "id": 750347,
    
    95
    +      "iid": 132,
    
    96
    +      "projectId": 2722779,
    
    97
    +      "groupId": 0,
    
    98
    +      "title": "7.0.2",
    
    99
    +      "description": "",
    
    100
    +      "startDate": "Jan 3, 2019 1:00:00 AM",
    
    101
    +      "state": "active"
    
    102
    +    },
    
    103
    +    "assignee": {
    
    104
    +      "_id": 166231,
    
    105
    +      "_username": "tchemit",
    
    106
    +      "_name": "Tony CHEMIT",
    
    107
    +      "_state": "active",
    
    108
    +      "_darkScheme": false,
    
    109
    +      "_isAdmin": false,
    
    110
    +      "_canCreateGroup": false,
    
    111
    +      "_canCreateProject": false,
    
    112
    +      "_canCreateTeam": false,
    
    113
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    114
    +    },
    
    115
    +    "author": {
    
    116
    +      "_id": 1111318,
    
    117
    +      "_username": "pcauquil",
    
    118
    +      "_name": "Pascal Cauquil",
    
    119
    +      "_state": "active",
    
    120
    +      "_darkScheme": false,
    
    121
    +      "_isAdmin": false,
    
    122
    +      "_canCreateGroup": false,
    
    123
    +      "_canCreateProject": false,
    
    124
    +      "_canCreateTeam": false,
    
    125
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    126
    +    },
    
    127
    +    "state": "opened",
    
    128
    +    "updatedAt": "Jan 10, 2019 7:38:48 AM",
    
    129
    +    "createdAt": "Jan 8, 2019 11:37:49 AM"
    
    130
    +  },
    
    131
    +  {
    
    132
    +    "id": 17161807,
    
    133
    +    "iid": 1193,
    
    134
    +    "projectId": 2722779,
    
    135
    +    "title": "[UI REFERNETIEL] Personne : impossible d\u0027afficher les éléments liés à une personne",
    
    136
    +    "description": "UI référence : impossible d\u0027afficher les éléments liés à une personne (en mode serveur)\n\n![image](/uploads/21f59cb20d76b5ee75e8fc532ca9bc04/image.png)\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![image](/uploads/f735b25070824d1bac90a90c0b95d282/image.png)",
    
    137
    +    "labels": [
    
    138
    +      "Anomalie",
    
    139
    +      "Contrat AZTI-2017"
    
    140
    +    ],
    
    141
    +    "milestone": {
    
    142
    +      "id": 750347,
    
    143
    +      "iid": 132,
    
    144
    +      "projectId": 2722779,
    
    145
    +      "groupId": 0,
    
    146
    +      "title": "7.0.2",
    
    147
    +      "description": "",
    
    148
    +      "startDate": "Jan 3, 2019 1:00:00 AM",
    
    149
    +      "state": "active"
    
    150
    +    },
    
    151
    +    "assignee": {
    
    152
    +      "_id": 166231,
    
    153
    +      "_username": "tchemit",
    
    154
    +      "_name": "Tony CHEMIT",
    
    155
    +      "_state": "active",
    
    156
    +      "_darkScheme": false,
    
    157
    +      "_isAdmin": false,
    
    158
    +      "_canCreateGroup": false,
    
    159
    +      "_canCreateProject": false,
    
    160
    +      "_canCreateTeam": false,
    
    161
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d80\u0026d\u003didenticon"
    
    162
    +    },
    
    163
    +    "author": {
    
    164
    +      "_id": 1111318,
    
    165
    +      "_username": "pcauquil",
    
    166
    +      "_name": "Pascal Cauquil",
    
    167
    +      "_state": "active",
    
    168
    +      "_darkScheme": false,
    
    169
    +      "_isAdmin": false,
    
    170
    +      "_canCreateGroup": false,
    
    171
    +      "_canCreateProject": false,
    
    172
    +      "_canCreateTeam": false,
    
    173
    +      "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d80\u0026d\u003didenticon"
    
    174
    +    },
    
    175
    +    "state": "closed",
    
    176
    +    "updatedAt": "Jan 11, 2019 10:05:19 AM",
    
    177
    +    "createdAt": "Jan 8, 2019 11:35:18 AM"
    
    178
    +  }
    
    179
    +]
    \ No newline at end of file

  • .mvn/gitlab-cache/milestones/750347.json
    1
    +{
    
    2
    +  "id": 750347,
    
    3
    +  "iid": 132,
    
    4
    +  "projectId": 2722779,
    
    5
    +  "groupId": 0,
    
    6
    +  "title": "7.0.2",
    
    7
    +  "description": "",
    
    8
    +  "startDate": "Jan 3, 2019 1:00:00 AM",
    
    9
    +  "state": "active"
    
    10
    +}
    \ No newline at end of file

  • CHANGELOG.md
    1 1
     # ObServe changelog
    
    2 2
     
    
    3 3
      * Author [Tony Chemit](mailto:dev@tchemit.fr)
    
    4
    - * Last generated at 2019-01-02 15:53.
    
    4
    + * Last generated at 2019-01-14 12:20.
    
    5 5
     
    
    6 6
     ## Version [8.0-alpha-4](https://gitlab.com/ultreiaio/ird-observe/milestones/115)
    
    7 7
     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
    1
    +package fr.ird.observe.dto.referential.common;
    
    2
    +
    
    3
    +/*-
    
    4
    + * #%L
    
    5
    + * ObServe :: Dto
    
    6
    + * %%
    
    7
    + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
    
    8
    + * %%
    
    9
    + * This program is free software: you can redistribute it and/or modify
    
    10
    + * it under the terms of the GNU General Public License as
    
    11
    + * published by the Free Software Foundation, either version 3 of the
    
    12
    + * License, or (at your option) any later version.
    
    13
    + *
    
    14
    + * This program is distributed in the hope that it will be useful,
    
    15
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    16
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    17
    + * GNU General Public License for more details.
    
    18
    + *
    
    19
    + * You should have received a copy of the GNU General Public
    
    20
    + * License along with this program.  If not, see
    
    21
    + * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    22
    + * #L%
    
    23
    + */
    
    24
    +
    
    25
    +import java.util.Arrays;
    
    26
    +import java.util.List;
    
    27
    +
    
    28
    +public class SpeciesGroupHelper extends GeneratedSpeciesGroupHelper {
    
    29
    +    //FIXME PROTECTED-ID
    
    30
    +    public static final List<String> SPECIES_GROUP_IDS = Arrays.asList(
    
    31
    +            "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
    
    32
    +            "fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461",
    
    33
    +            "fr.ird.referential.common.SpeciesGroup#1446014286433#0.6480183366605247",
    
    34
    +            "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075"
    
    35
    +    );
    
    36
    +}

  • 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;
    25 25
     import fr.ird.observe.dto.data.ps.observation.SetSeineNonTargetCatchReleaseDto;
    
    26 26
     import fr.ird.observe.dto.form.Form;
    
    27 27
     import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet;
    
    28
    +import fr.ird.observe.dto.referential.common.SpeciesGroupHelper;
    
    28 29
     import fr.ird.observe.dto.referential.common.SpeciesReference;
    
    29 30
     import fr.ird.observe.dto.result.SaveResultDto;
    
    30 31
     import fr.ird.observe.entities.data.ps.observation.NonTargetCatch;
    
    31 32
     import fr.ird.observe.entities.data.ps.observation.SetSeine;
    
    32 33
     import fr.ird.observe.services.local.service.ObserveServiceLocal;
    
    33
    -import fr.ird.observe.services.local.service.referential.ReferentialServiceLocal;
    
    34 34
     import fr.ird.observe.services.service.data.ps.observation.NonTargetCatchReleaseService;
    
    35 35
     
    
    36 36
     import java.util.stream.Collectors;
    
    ... ... @@ -46,7 +46,7 @@ public class NonTargetCatchReleaseServiceLocal extends ObserveServiceLocal imple
    46 46
             return SPECIES_SPI.toReferentialReferenceSet(setSeine.getNonTargetCatch().stream()
    
    47 47
                                                                  .map(NonTargetCatch::getSpecies)
    
    48 48
                                                                  .distinct()
    
    49
    -                                                             .filter(s -> ReferentialServiceLocal.SPECIES_GROUP_IDS.contains(s.getSpeciesGroup().getTopiaId()))
    
    49
    +                                                             .filter(s -> SpeciesGroupHelper.SPECIES_GROUP_IDS.contains(s.getSpeciesGroup().getTopiaId()))
    
    50 50
                                                                  .collect(Collectors.toList()), getReferentialLocale(), null);
    
    51 51
         }
    
    52 52
     
    

  • 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;
    41 41
     import fr.ird.observe.dto.referential.ReferentialDto;
    
    42 42
     import fr.ird.observe.dto.referential.common.SpeciesDto;
    
    43 43
     import fr.ird.observe.dto.referential.common.SpeciesGroupDto;
    
    44
    +import fr.ird.observe.dto.referential.common.SpeciesGroupHelper;
    
    44 45
     import fr.ird.observe.dto.referential.ps.observation.ObservedSystemReference;
    
    45 46
     import fr.ird.observe.dto.result.SaveResultDto;
    
    46 47
     import fr.ird.observe.entities.Entities;
    
    ... ... @@ -82,7 +83,6 @@ import org.nuiton.topia.persistence.script.TopiaSqlScript;
    82 83
     import org.nuiton.version.Version;
    
    83 84
     import org.nuiton.version.Versions;
    
    84 85
     
    
    85
    -import java.util.Arrays;
    
    86 86
     import java.util.Collections;
    
    87 87
     import java.util.Date;
    
    88 88
     import java.util.LinkedHashSet;
    
    ... ... @@ -99,13 +99,6 @@ import java.util.Set;
    99 99
      */
    
    100 100
     public class ReferentialServiceLocal extends ObserveServiceLocal implements ReferentialService {
    
    101 101
     
    
    102
    -    //FIXME PROTECTED-ID
    
    103
    -    public static final List<String> SPECIES_GROUP_IDS = Arrays.asList(
    
    104
    -            "fr.ird.referential.common.SpeciesGroup#1445863056144#0.9820877553253712",
    
    105
    -            "fr.ird.referential.common.SpeciesGroup#1239832683690#0.24333033683679461",
    
    106
    -            "fr.ird.referential.common.SpeciesGroup#1446014286433#0.6480183366605247",
    
    107
    -            "fr.ird.referential.common.SpeciesGroup#1239832683689#0.7120116158620075"
    
    108
    -    );
    
    109 102
         private static final Logger log = LogManager.getLogger(ReferentialServiceLocal.class);
    
    110 103
     
    
    111 104
         @Override
    
    ... ... @@ -152,12 +145,24 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe
    152 145
         @Override
    
    153 146
         public ImmutableSet<SpeciesGroupDto> loadSensibleSpeciesGroup() {
    
    154 147
             ImmutableSet.Builder<SpeciesGroupDto> result = ImmutableSet.builder();
    
    155
    -        for (String speciesGroupId : SPECIES_GROUP_IDS) {
    
    148
    +        for (String speciesGroupId : SpeciesGroupHelper.SPECIES_GROUP_IDS) {
    
    156 149
                 result.add(loadSpeciesGroup(speciesGroupId));
    
    157 150
             }
    
    158 151
             return result.build();
    
    159 152
         }
    
    160 153
     
    
    154
    +    @Override
    
    155
    +    public <D extends ReferentialDto> D loadDto(Class<D> type, String id) {
    
    156
    +        ReferentialDtoEntityContext<D, ?, ?> spi = DbModelHelper.fromReferentialDto(type);
    
    157
    +        ObserveReferentialEntity entity = loadEntity(type, id);
    
    158
    +        D dto = spi.toDto(serviceContext.getReferentialLocale(), entity);
    
    159
    +        dto.setVersion(entity.getTopiaVersion());
    
    160
    +        dto.setCreateDate(entity.getTopiaCreateDate());
    
    161
    +        dto.setLastUpdateDate(entity.getLastUpdateDate());
    
    162
    +        dto.setStatus(ReferenceStatus.valueOf(entity.getStatus().name()));
    
    163
    +        return dto;
    
    164
    +    }
    
    165
    +
    
    161 166
         @Override
    
    162 167
         public <D extends ReferentialDto> Form<D> loadForm(Class<D> type, String id) {
    
    163 168
             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 {
    87 87
     
    
    88 88
         @ReadReferentialPermission
    
    89 89
         @Get
    
    90
    -    <R extends ReferentialDto> Form<R> loadForm(Class<R> type, String id);
    
    90
    +    <D extends ReferentialDto> D loadDto(Class<D> type, String id);
    
    91
    +
    
    92
    +    @ReadReferentialPermission
    
    93
    +    @Get
    
    94
    +    <D extends ReferentialDto> Form<D> loadForm(Class<D> type, String id);
    
    91 95
     
    
    92 96
         @Get
    
    93 97
         @ReadReferentialPermission
    
    ... ... @@ -95,36 +99,37 @@ public interface ReferentialService extends ObserveService {
    95 99
     
    
    96 100
         @Get
    
    97 101
         @WriteReferentialPermission
    
    98
    -    <R extends ReferentialDto> Form<R> preCreate(Class<R> type);
    
    102
    +    <D extends ReferentialDto> Form<D> preCreate(Class<D> type);
    
    99 103
     
    
    100 104
         @WriteReferentialPermission
    
    101 105
         @Write
    
    102 106
         @Post
    
    103
    -    <R extends ReferentialDto> SaveResultDto save(R bean);
    
    107
    +    <D extends ReferentialDto> SaveResultDto save(D bean);
    
    104 108
     
    
    105 109
         @WriteReferentialPermission
    
    110
    +    @WriteDataPermission
    
    106 111
         @Write
    
    107 112
         @Delete
    
    108
    -    <R extends ReferentialDto> void delete(Class<R> type, String id);
    
    113
    +    <D extends ReferentialDto> void delete(Class<D> type, String id);
    
    109 114
     
    
    110 115
         @Post
    
    111 116
         @WriteReferentialPermission
    
    117
    +    @WriteDataPermission
    
    112 118
         @Write
    
    113
    -    <E extends ReferentialDto> void replaceReference(Class<E> beanType, String idToReplace, String replaceId);
    
    119
    +    <D extends ReferentialDto> void replaceReference(Class<D> beanType, String idToReplace, String replaceId);
    
    114 120
     
    
    115 121
         @Post(useMultiPartForm = true)
    
    116 122
         @ReadReferentialPermission
    
    117
    -    <R extends ReferentialDto> ImmutableSetDtoMap<DtoReference> findAllUsages(Class<R> beanType, String id);
    
    123
    +    <D extends ReferentialDto> ImmutableSetDtoMap<DtoReference> findAllUsages(Class<D> beanType, String id);
    
    118 124
     
    
    119 125
         @Get
    
    120 126
         @ReadReferentialPermission
    
    121
    -    <R extends ReferentialDto> boolean exists(Class<R> type, String id);
    
    127
    +    <D extends ReferentialDto> boolean exists(Class<D> type, String id);
    
    122 128
     
    
    123 129
         @ReadReferentialPermission
    
    124 130
         @Post
    
    125 131
         ImmutableSetStringMap getReferentialIds();
    
    126 132
     
    
    127
    -
    
    128 133
         @ReadReferentialPermission
    
    129 134
         @ReadDataPermission
    
    130 135
         @Post(useMultiPartForm = true)