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

Commits:

2 changed files:

Changes:

  • services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeServiceLocal.java
    ... ... @@ -56,13 +56,19 @@ public class ReferentialSynchronizeServiceLocal extends ObserveServiceLocal impl
    56 56
         public void executeSqlsRequests(ReferentialSynchronizeSqlsRequest request, ReferentialSynchronizeSqlsRequest oppositeSqlsRequest) {
    
    57 57
     
    
    58 58
             long startTime = TimeLog.getTime();
    
    59
    -
    
    59
    +        byte[] deleteAssociationSqlCode = request.getDeleteAssociationSqlCode();
    
    60 60
             byte[] insertSqlCode = oppositeSqlsRequest.getInsertSqlCode();
    
    61
    +        byte[] insertAssociationSqlCode = oppositeSqlsRequest.getInsertAssociationSqlCode();
    
    61 62
             byte[] updateSqlCode = oppositeSqlsRequest.getUpdateSqlCode();
    
    62 63
             byte[] deleteSqlCode = request.getDeleteSqlCode();
    
    63 64
             byte[] desactivateSqlCode = request.getDesactivateSqlCode();
    
    64 65
     
    
    65
    -        getTopiaPersistenceContext().executeSqlScripts(insertSqlCode, updateSqlCode, desactivateSqlCode, deleteSqlCode);
    
    66
    +        getTopiaPersistenceContext().executeSqlScripts(deleteAssociationSqlCode,
    
    67
    +                                                       insertSqlCode,
    
    68
    +                                                       insertAssociationSqlCode,
    
    69
    +                                                       updateSqlCode,
    
    70
    +                                                       desactivateSqlCode,
    
    71
    +                                                       deleteSqlCode);
    
    66 72
     
    
    67 73
             timeLog.log(startTime, "executeSqlsRequests");
    
    68 74
     
    

  • services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlsRequest.java
    ... ... @@ -10,12 +10,12 @@ package fr.ird.observe.services.service.actions.synchro.referential.ng;
    10 10
      * it under the terms of the GNU General Public License as
    
    11 11
      * published by the Free Software Foundation, either version 3 of the
    
    12 12
      * License, or (at your option) any later version.
    
    13
    - * 
    
    13
    + *
    
    14 14
      * This program is distributed in the hope that it will be useful,
    
    15 15
      * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    16 16
      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    17 17
      * GNU General Public License for more details.
    
    18
    - * 
    
    18
    + *
    
    19 19
      * You should have received a copy of the GNU General Public
    
    20 20
      * License along with this program.  If not, see
    
    21 21
      * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    ... ... @@ -23,8 +23,8 @@ package fr.ird.observe.services.service.actions.synchro.referential.ng;
    23 23
      */
    
    24 24
     
    
    25 25
     import fr.ird.observe.dto.ObserveDto;
    
    26
    -import org.apache.logging.log4j.Logger;
    
    27 26
     import org.apache.logging.log4j.LogManager;
    
    27
    +import org.apache.logging.log4j.Logger;
    
    28 28
     
    
    29 29
     /**
    
    30 30
      * Created on 08/08/16.
    
    ... ... @@ -37,18 +37,24 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    37 37
         /** Logger. */
    
    38 38
         private static final Logger log = LogManager.getLogger(ReferentialSynchronizeSqlsRequest.class);
    
    39 39
     
    
    40
    +    private final byte[] insertAssociationSqlCode;
    
    40 41
         private final byte[] insertSqlCode;
    
    41 42
         private final byte[] updateSqlCode;
    
    43
    +    private final byte[] deleteAssociationSqlCode;
    
    42 44
         private final byte[] deleteSqlCode;
    
    43 45
         private final byte[] desactivateSqlCode;
    
    44 46
     
    
    45 47
         private ReferentialSynchronizeSqlsRequest(String insertSqlCode,
    
    48
    +                                              String insertAssociationSqlCode,
    
    46 49
                                                   String updateSqlCode,
    
    47 50
                                                   String deleteSqlCode,
    
    51
    +                                              String deleteAssociationSqlCode,
    
    48 52
                                                   String desactivateSqlCode) {
    
    49 53
             this.insertSqlCode = insertSqlCode.getBytes();
    
    54
    +        this.insertAssociationSqlCode = insertAssociationSqlCode.getBytes();
    
    50 55
             this.updateSqlCode = updateSqlCode.getBytes();
    
    51 56
             this.deleteSqlCode = deleteSqlCode.getBytes();
    
    57
    +        this.deleteAssociationSqlCode = deleteAssociationSqlCode.getBytes();
    
    52 58
             this.desactivateSqlCode = desactivateSqlCode.getBytes();
    
    53 59
         }
    
    54 60
     
    
    ... ... @@ -68,21 +74,33 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    68 74
             return deleteSqlCode;
    
    69 75
         }
    
    70 76
     
    
    77
    +    public byte[] getInsertAssociationSqlCode() {
    
    78
    +        return insertAssociationSqlCode;
    
    79
    +    }
    
    80
    +
    
    81
    +    public byte[] getDeleteAssociationSqlCode() {
    
    82
    +        return deleteAssociationSqlCode;
    
    83
    +    }
    
    84
    +
    
    71 85
         public byte[] getDesactivateSqlCode() {
    
    72 86
             return desactivateSqlCode;
    
    73 87
         }
    
    74 88
     
    
    75 89
         public static class Builder {
    
    76 90
     
    
    91
    +        private final StringBuilder addAssociationTasksBuilder = new StringBuilder();
    
    77 92
             private final StringBuilder addTasksBuilder = new StringBuilder();
    
    78 93
             private final StringBuilder updateTasksBuilder = new StringBuilder();
    
    79 94
             private final StringBuilder deleteTasksBuilder = new StringBuilder();
    
    95
    +        private final StringBuilder deleteAssociationTasksBuilder = new StringBuilder();
    
    80 96
             private final StringBuilder desactivateTasksBuilder = new StringBuilder();
    
    81 97
     
    
    82 98
             public ReferentialSynchronizeSqlsRequest build() {
    
    83 99
                 return new ReferentialSynchronizeSqlsRequest(addTasksBuilder.toString(),
    
    100
    +                                                         addAssociationTasksBuilder.toString(),
    
    84 101
                                                              updateTasksBuilder.toString(),
    
    85 102
                                                              deleteTasksBuilder.toString(),
    
    103
    +                                                         deleteAssociationTasksBuilder.toString(),
    
    86 104
                                                              desactivateTasksBuilder.toString());
    
    87 105
             }
    
    88 106
     
    
    ... ... @@ -90,7 +108,11 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    90 108
                 if (log.isInfoEnabled()) {
    
    91 109
                     log.info("Add add sql: " + sql);
    
    92 110
                 }
    
    93
    -            addTasksBuilder.append(sql);
    
    111
    +            if (sql.startsWith("$$_INSERT")) {
    
    112
    +                addAssociationTasksBuilder.append(sql.substring(3));
    
    113
    +            } else {
    
    114
    +                addTasksBuilder.append(sql);
    
    115
    +            }
    
    94 116
                 return this;
    
    95 117
             }
    
    96 118
     
    
    ... ... @@ -107,7 +129,11 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    107 129
                 if (log.isInfoEnabled()) {
    
    108 130
                     log.info("Add delete sql: " + sql);
    
    109 131
                 }
    
    110
    -            deleteTasksBuilder.append(sql);
    
    132
    +            if (sql.startsWith("$$_DELETE")) {
    
    133
    +                deleteAssociationTasksBuilder.append(sql.substring(3));
    
    134
    +            } else {
    
    135
    +                deleteTasksBuilder.append(sql);
    
    136
    +            }
    
    111 137
                 return this;
    
    112 138
             }
    
    113 139