public AclMessage executeRequest(AclMessage request, AclMessage agreement)
        throws FailureException {
      try {
        ExportManager exportManager = new ExportManager();
        exportManager.doExport(getConnection(request), request.getContent());

        AclMessage reply = request.createReply(AclMessage.Performative.INFORM);
        reply.setContent("Export terminé");
        return reply;
      } catch (SQLException exception) {
        LOG.error(exception.getLocalizedMessage(), exception);
        throw new FailureException(exception.getLocalizedMessage());
      } catch (IOException exception) {
        LOG.error("Impossible d'écrire le fichier d'export.", exception);
        throw new FailureException("Impossible d'écrire le fichier d'export.");
      } catch (Exception exception) {
        LOG.error("Exception inattendue.", exception);
        throw new FailureException(exception.getLocalizedMessage());
      }
    }
    @Override
    public void parseMessage(AclMessage request)
        throws NotUnderstoodException, IOException, ParseException, SQLException {
      String message = request.getContent();
      if (message == null || message.length() == 0) {
        throw new NotUnderstoodException("Message vide.");
      }

      String[] args = message.split(";");
      if (args.length != 2) {
        throw new NotUnderstoodException("Message incorrect.");
      }

      String exportType = args[0];
      if (exportType == null || exportType.length() == 0) {
        throw new ParseException("Le type d'export est incorrect.");
      }

      String exportFilePath = args[1];
      if (exportFilePath == null || exportFilePath.length() == 0) {
        throw new ParseException("Le chemin du fichier d'export est incorrect.");
      }
    }