summaryrefslogtreecommitdiff
path: root/calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java')
-rw-r--r--calamus-nexus-plugin/src/main/java/io/trygvis/calamus/nexus/CalamusEventListener.java52
1 files changed, 52 insertions, 0 deletions
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);
+ }
+}