Java tutorial
/******************************************************************************* * Copyright (c) 2013 * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v2.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * Lautaro Matas (lmatas@gmail.com) - Desarrollo e implementacin * Emiliano Marmonti(emarmonti@gmail.com) - Coordinacin del componente III * * Este software fue desarrollado en el marco de la consultora "Desarrollo e implementacin de las soluciones - Prueba piloto del Componente III -Desarrollador para las herramientas de back-end" del proyecto Estrategia Regional y Marco de Interoperabilidad y Gestin para una Red Federada Latinoamericana de Repositorios Institucionales de Documentacin Cientfica? financiado por Banco Interamericano de Desarrollo (BID) y ejecutado por la Cooperacin Latino Americana de Redes Avanzadas, CLARA. ******************************************************************************/ package org.lareferencia.backend.indexer; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import lombok.Getter; import lombok.Setter; import org.lareferencia.backend.domain.Network; import org.lareferencia.backend.domain.NetworkSnapshot; import org.lareferencia.backend.domain.OAIOrigin; import org.lareferencia.backend.domain.OAIRecord; import org.lareferencia.backend.domain.OAISet; import org.lareferencia.backend.domain.RecordStatus; import org.lareferencia.backend.domain.SnapshotStatus; import org.lareferencia.backend.harvester.HarvestingEvent; import org.lareferencia.backend.harvester.IHarvester; import org.lareferencia.backend.harvester.IHarvestingEventListener; import org.lareferencia.backend.harvester.OAIRecordMetadata; import org.lareferencia.backend.repositories.NetworkRepository; import org.lareferencia.backend.repositories.NetworkSnapshotRepository; import org.lareferencia.backend.repositories.OAIRecordRepository; import org.lareferencia.backend.transformer.ITransformer; import org.lareferencia.backend.validator.IValidator; import org.lareferencia.backend.validator.ValidationResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @Component @Scope(value = "prototype") public class IndexerWorker implements Runnable { @Setter private Long snapshotID; @Autowired private NetworkSnapshotRepository networkSnapshotRepository; @Autowired IIndexer indexer; public IndexerWorker() { }; @Override public void run() { NetworkSnapshot snapshot = networkSnapshotRepository.findOne(this.snapshotID); indexer.index(snapshot); System.gc(); } }