class ArtifactResource extends AbstractResource {

    @GET
    @Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON})
    @Path("/{gavc}")
    public Response get(@PathParam("gavc") final String gavc){
        if(LOG.isInfoEnabled()) {
            LOG.info(String.format("Got a get artifact request [%s]", gavc));
        }

        final ArtifactView view = new ArtifactView();

        final DbArtifact dbArtifact = getArtifactHandler().getArtifact(gavc);
        view.setShouldNotBeUse(dbArtifact.getDoNotUse());

        final Artifact artifact = getModelMapper().getArtifact(dbArtifact);
        view.setArtifact(artifact);

        final DbOrganization dbOrganization = getArtifactHandler().getOrganization(dbArtifact);
        if(dbOrganization != null){
            final Organization organization = getModelMapper().getOrganization(dbOrganization);
            view.setOrganization(organization);
        }

        DbComment dbComment = getCommentHandler().getLatestComment(gavc, DbArtifact.class.getSimpleName());
        if(dbComment != null) {
            final Comment comment = getModelMapper().getComment(dbComment);
            view.setComment(comment);
        }

        return Response.ok(view).build();
    }

    public  ArtifactResource(final RepositoryHandler repoHandler, final GrapesServerConfig dmConfig);

}