package org.gcube.application.geoportal.service.engine.providers; import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; import org.gcube.application.geoportal.common.model.profile.Profile; import org.gcube.application.geoportal.common.utils.Files; import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; import org.gcube.application.geoportal.service.utils.Serialization; import java.io.IOException; import java.nio.charset.Charset; import java.util.Collections; import java.util.HashMap; import java.util.Map; @Slf4j public class ProfileMapCache extends AbstractScopedMap> { public ProfileMapCache() { super("Profiles CACHE"); } @Override public void init() { } @Override protected void dispose(Map toDispose) { } @Override protected Map retrieveObject() throws ConfigurationException { // Load from resources HashMap toReturn=new HashMap<>(); try { Profile p=Serialization.read(Files. readFileAsString(Files.getFileFromResources("profiles/concessione.json").getAbsolutePath(), Charset.defaultCharset()), Profile.class); log.debug("Loaded "+p.getName()+" ID "+p.getId()); toReturn.put(p.getId(),p); }catch (JsonProcessingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return toReturn; } }