package com.aol.micro.server.application.registry;
import java.io.File;
import java.io.IOException;
import lombok.val;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.aol.micro.server.ip.tracker.*;
import com.aol.micro.server.rest.jackson.JacksonUtil;
@Component
public class Register {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final RegisterConfig config;
@Autowired
public Register(RegisterConfig config) {
this.config = config;
}
public void register(final RegisterEntry entry) {
File dir = new File(config.getOutputDir(), "" + entry.getModule());
dir.mkdirs();
File file = new File(dir, entry.getHostname() + "-" + entry.getModule() + "-" + entry.getUuid());
try {
final RegisterEntry entryToUse = "use-ip".equals(entry.getHostname()) ?
entry.withHostname(QueryIPRetriever.getIpAddress()) : entry;
FileUtils.writeStringToFile(file, JacksonUtil.serializeToJson(entryToUse));
} catch (IOException e) {
logger.error("Error registering service to disk {}", JacksonUtil.serializeToJson(entry));
}
}
}