# 15.3. Worker Client

## 15.3.1. La factory

Afin de récupérer le client une factory a été mise en place. On peut dorenavant lancer plusieurs Client Worker en parallele avec des configurations differentes.

    WorkerClientFactory.changeMode(WorkerClientConfiguration configuration)
    // Récupération du client
    WorkerClient client = WorkerClientFactory.getInstance().getClient(configuration);

A la demande l’instance courante du client, si un fichier de configuration worker-client.conf est présent dans le classpath le client en mode de production est envoyé, sinon il s’agit du mock.

### 15.3.1.1. Le Mock

En l’absence d’une configuration, le client est en mode Mock. Il est possible de récupérer directement le mock :

    // Changer la configuration du Factory
    WorkerClientFactory.changeMode(null);
    // Récupération explicite du client mock
    WorkerClient client = WorkerClientFactory.getInstance(null).geClient();

### 15.3.1.2. Le mode de production

Pour instancier son client en mode Production :

    // Changer la configuration du Factory
    WorkerClientFactory.changeMode(WorkerClientConfiguration configuration);
    //creation du de la configuration
    WorkerClientConfiguration workerClientConfiguration = new WorkerClientConfiguration(
                     "localhost",
                      8067
    );
    // Récupération explicite du client
    WorkerClient client = WorkerClientFactory.getInstance(workerClientConfiguration).getClient();

## 15.3.2. Les services

Le client propose pour le moment une fonctionnalité : - Permet de soumettre le lancement d’une étape. Deux paramètres sont nécessaires : un string requestId + un objet DescriptionStep. Voici un exemple d’utilisation :

    DescriptionStep ds = new DescriptionStep(new Step(), new WorkParams());
    List<EngineResponse> responses =
             client.submitStep("requestId", ds);
    // Now we can check the list of response