addons/koji/common/src/main/java/org/commonjava/indy/koji/content/IndyKojiContentProvider.java
public List<KojiBuildInfo> listBuildsContaining( ArtifactRef artifactRef, KojiSessionInfo session )
                    throws KojiClientException
    {
        return computeIfAbsent( KOJI_BUILD_INFO_CONTAINING_ARTIFACT, ArtifactRef.class, List.class, artifactRef,
                                () -> kojiClient.listBuildsContaining( artifactRef, session ),
                                kojiConfig.getQueryCacheTimeoutHours() );
    }
public List<KojiBuildInfo> listBuildsContaining( ArtifactRef artifactRef, KojiSessionInfo session )
                    throws KojiClientException
    {
        return computeIfAbsent( KOJI_BUILD_INFO_CONTAINING_ARTIFACT, ArtifactRef.class, List.class, artifactRef,
                                () -> kojiClient.listBuildsContaining( artifactRef, session ),
                                kojiConfig.getQueryCacheTimeoutHours() );
    }
The caller actually passes SimpleArtifactRef which has right hashcode/equals so we can use it as cache key.