@Override
  public String deploySynapseArtifact(
      OMElement artifactConfig, String fileName, Properties properties) {

    if (log.isDebugEnabled()) {
      log.debug("Endpoint Deployment from file : " + fileName + " : Started");
    }

    CustomLogSetter.getInstance().setLogAppender(customLogContent);

    try {
      Endpoint ep = EndpointFactory.getEndpointFromElement(artifactConfig, false, properties);

      // Set the car name
      ep.setArtifactContainerName(customLogContent);
      if (ep != null) {
        ep.setFileName((new File(fileName)).getName());
        if (log.isDebugEnabled()) {
          log.debug(
              "Endpoint named '" + ep.getName() + "' has been built from the file " + fileName);
        }
        ep.init(getSynapseEnvironment());
        if (log.isDebugEnabled()) {
          log.debug("Initialized the endpoint : " + ep.getName());
        }
        getSynapseConfiguration().addEndpoint(ep.getName(), ep);
        if (log.isDebugEnabled()) {
          log.debug("Endpoint Deployment from file : " + fileName + " : Completed");
        }
        log.info("Endpoint named '" + ep.getName() + "' has been deployed from file : " + fileName);
        return ep.getName();
      } else {
        handleSynapseArtifactDeploymentError(
            "Endpoint Deployment Failed. The artifact "
                + "described in the file "
                + fileName
                + " is not an Endpoint");
      }
    } catch (Exception e) {
      handleSynapseArtifactDeploymentError(
          "Endpoint Deployment from the file : " + fileName + " : Failed.", e);
    }

    return null;
  }