diff --git a/src/main/java/me/bearns/fias/helpers/UpdaterImpl.java b/src/main/java/me/bearns/fias/helpers/UpdaterImpl.java index af0f8cf..6cea7d8 100644 --- a/src/main/java/me/bearns/fias/helpers/UpdaterImpl.java +++ b/src/main/java/me/bearns/fias/helpers/UpdaterImpl.java @@ -5,9 +5,11 @@ import me.bearns.fias.domain.FiasVersion; import me.bearns.fias.exceptions.CommonException; import me.bearns.fias.exceptions.DownloadException; import me.bearns.fias.exceptions.UnzipException; +import me.bearns.fias.repository.AddrobjRepository; import me.bearns.fias.repository.FiasVersionRepository; import me.bearns.fias.service.Downloader; import me.bearns.fias.service.StreamSaver; +import me.bearns.fias.xml.AddrObjAdapter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Component; @@ -122,6 +124,12 @@ public class UpdaterImpl implements UpdateHelper { final UnmarshallerParameters config = catalog.getByPrefix(name); if(config!=null) { + + final JpaRepository repository = config.getRepository(); + if(repository instanceof AddrobjRepository){ + AddrObjAdapter.setRepository((AddrobjRepository) repository); + } + try (InputStream is = zipFile.getInputStream(entry)) { log.debug("Process '{}' in zip", name); unmarshaller.process(is, config, filter); diff --git a/src/main/java/me/bearns/fias/xml/AddrObjAdapter.java b/src/main/java/me/bearns/fias/xml/AddrObjAdapter.java index 54852a7..8ac7a39 100644 --- a/src/main/java/me/bearns/fias/xml/AddrObjAdapter.java +++ b/src/main/java/me/bearns/fias/xml/AddrObjAdapter.java @@ -9,10 +9,9 @@ import javax.xml.bind.annotation.adapters.XmlAdapter; import java.util.Optional; import java.util.UUID; -@Component public class AddrObjAdapter extends XmlAdapter { - @Autowired + private static AddrobjRepository repository; @Override @@ -20,7 +19,9 @@ public class AddrObjAdapter extends XmlAdapter { final UUID aoguid = UUID.fromString(v); final Addrobj addrobj = repository.findByAoguid(aoguid).orElseGet(Addrobj::new); - addrobj.aoguid = aoguid; + //final Addrobj addrobj = new Addrobj(); //TODO FIX IT + addrobj.aoguid = aoguid; + addrobj.aoid = aoguid; return addrobj; } @@ -36,4 +37,8 @@ public class AddrObjAdapter extends XmlAdapter { return null; } + + public static void setRepository(AddrobjRepository repo){ + repository = repo; + } } diff --git a/src/test/java/me/bearns/fias/helper/XMLSourceHelper.java b/src/test/java/me/bearns/fias/helper/XMLSourceHelper.java index 7c0ff07..fc5e85c 100644 --- a/src/test/java/me/bearns/fias/helper/XMLSourceHelper.java +++ b/src/test/java/me/bearns/fias/helper/XMLSourceHelper.java @@ -5,25 +5,6 @@ import java.io.InputStream; public class XMLSourceHelper { -/* - - - - - - - */ - - /* - - - - - - - -*/ - public static InputStream getAOStream() { final StringBuilder sba = new StringBuilder();