package org.genedb.aop; import org.apache.log4j.Logger; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.genedb.web.mvc.model.FeatureDTO; import org.gmod.schema.mapped.Feature; import com.hazelcast.core.Hazelcast; @Aspect public class HazelcastAspect { public static final String dtoMapName = "dtoMap"; private static final Logger logger = Logger.getLogger(HazelcastAspect.class); // @Around("execution(* getDtoByName(..))") // public Object getFromHazelcast(ProceedingJoinPoint pjp) // throws Throwable { // // Object[] args = pjp.getArgs(); // // Feature feature = (Feature ) args[0]; // // FeatureDTO dto = (FeatureDTO) Hazelcast.getMap(dtoMapName).get(feature.getUniqueName()); // // if (dto != null) { // logger.info("***** Found " + feature.getUniqueName() + " in Hazelcast distributed map!"); // return dto; // } // // logger.info("***** Could not find DTO for " + feature.getUniqueName()); // // return pjp.proceed(); // } // // @AfterReturning(pointcut="execution(* saveDto(..))", returning="retVal") // public void putIntoHazelcast(Object retVal) { // FeatureDTO dto = (FeatureDTO)retVal; // // logger.info("***** Storing " + dto.getUniqueName()); // Hazelcast.getMap(dtoMapName).put(dto.getUniqueName(), dto); // } }