package io.trygvis.calamus.nexus; import com.google.common.eventbus.Subscribe; import org.slf4j.Logger; import org.sonatype.nexus.events.EventSubscriber; import org.sonatype.nexus.proxy.events.RepositoryItemEventStoreCreate; import org.sonatype.nexus.proxy.maven.gav.Gav; import org.sonatype.nexus.proxy.maven.gav.GavCalculator; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; import static org.slf4j.LoggerFactory.getLogger; @Singleton @Named("CalamusEventListener") public class CalamusEventListener implements EventSubscriber { private final Logger log = getLogger(getClass()); private final MqClient mqClient; private final GavCalculator gavCalculator; @Inject public CalamusEventListener(CalamusConfig config, @Named("maven2") GavCalculator gavCalculator) { log.info("CalamusEventListener.CalamusEventListener"); log.info("gavCalculator = " + gavCalculator); this.mqClient = new MqClient(config.getBrokerUrl()); this.gavCalculator = gavCalculator; } @Subscribe public void onRepositoryItemEventStoreCreate(RepositoryItemEventStoreCreate event) { log.info("EventListener.onRepositoryItemEventStoreCreate"); Gav gav = gavCalculator.pathToGav(event.getItem().getPath()); if (gav == null || gav.isHash() || gav.isSignature()) { return; } String groupId = gav.getGroupId(); String artifactId = gav.getArtifactId(); String version = gav.getVersion(); String extension = gav.getExtension(); String classifier = gav.getClassifier(); log.info("New artifact: groupId={}, artifactId={}, version={}, classifier={}, extension={}", groupId, artifactId, version, classifier, extension); mqClient.sendMessage(event.getRepository().getId(), groupId, artifactId, version, classifier, extension); } }