@Override
  protected void doConfigure(
      ServiceProfile<?> profile,
      Map<String, String> desiredProperties,
      Map<String, String> desiredEnvironmentVariables)
      throws InterruptedException, IOException {
    Map<String, String> conf = profile.getConfiguration();
    String trackerClassName = conf.get(ExecutionTracker.KEY_CLASS);
    String trackingId = conf.get(ExecutionTracker.KEY_ID);

    assertThat(trackerClassName, is(notNullValue()));
    assertThat(trackingId, is(notNullValue()));

    try {
      Class<?> trackerClass = profile.getContext().getClassLoader().loadClass(trackerClassName);
      this.tracker = trackerClass.asSubclass(ExecutionTracker.class).newInstance();
      this.id = ExecutionTracker.Id.get(trackingId);
    } catch (Exception e) {
      throw new AssertionError(e);
    }
  }