package org.netmelody.cieye.spies.jenkins; import java.text.SimpleDateFormat; import org.netmelody.cieye.core.domain.CiServerType; import org.netmelody.cieye.core.domain.Feature; import org.netmelody.cieye.core.observation.CiSpy; import org.netmelody.cieye.core.observation.CodeBook; import org.netmelody.cieye.core.observation.CommunicationNetwork; import org.netmelody.cieye.core.observation.KnownOffendersDirectory; import org.netmelody.cieye.core.observation.ObservationAgency; public final class JenkinsObservationAgency implements ObservationAgency { @Override public CiSpy provideSpyFor(Feature feature, CommunicationNetwork network, KnownOffendersDirectory directory) { final CodeBook codeBook = new CodeBook(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")) .withCredentials(feature.username(), feature.password()); return new JenkinsSpy(feature.endpoint(), directory, network.makeContact(codeBook)); } @Override public boolean canProvideSpyFor(CiServerType type) { return "JENKINS".equals(type.name()) || "HUDSON".equals(type.name()); } }