From a521a2d74c480c53c1004e7e5e2addd28a0578f4 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 12 Apr 2014 20:37:55 +0200 Subject: wip --- .../calamus/nexus/CalamusEventListener.java | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java (limited to 'calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java') diff --git a/calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java b/calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java new file mode 100644 index 0000000..ddfd171 --- /dev/null +++ b/calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java @@ -0,0 +1,52 @@ +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); + } +} -- cgit v1.2.3