@@ -0,0 +1,1485 @@
+package io.highway.to.urhell.service;%0A%0Aimport io.highway.to.urhell.domain.EntryPathData;%0Aimport io.highway.to.urhell.domain.FrameworkEnum;%0Aimport io.highway.to.urhell.domain.FrameworkInformations;%0A%0Aimport org.slf4j.Logger;%0Aimport org.slf4j.LoggerFactory;%0A%0Apublic abstract class AbstractLeechService implements LeechService %7B%0A    protected final Logger LOGGER = LoggerFactory.getLogger(this.getClass());%0A    private FrameworkInformations frameworkInformations = new FrameworkInformations();%0A%0A    public AbstractLeechService(FrameworkEnum framework) %7B%0A        frameworkInformations.setFrameworkEnum(framework);%0A    %7D%0A%0A    public AbstractLeechService(FrameworkEnum framework, String version) %7B%0A        this(framework);%0A        frameworkInformations.setVersion(version);%0A    %7D%0A%0A    public void receiveData(Object incoming) %7B%0A        clearPreviousData();%0A        LOGGER.debug(%22receive incoming data%22);%0A        gatherData(incoming);%0A        LOGGER.debug(%22data gathering complete. Found %7B%7D entries%22,%0A                frameworkInformations.getListEntryPath().size());%0A    %7D%0A%0A    protected void clearPreviousData() %7B%0A        frameworkInformations.getListEntryPath().clear();%0A    %7D%0A%0A    protected abstract void gatherData(Object incoming);%0A%0A    @Override%0A    public FrameworkInformations getFrameworkInformations() %7B%0A        return frameworkInformations;%0A    %7D%0A    %0A    public void addEntryPath(EntryPathData entryPath) %7B%0A        frameworkInformations.getListEntryPath().add(entryPath);%0A    %7D%0A%0A%7D%0A

Introduce AbstractLeechService, factorizing logs, frameworkInformations init, data purge, and framework versions