X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2FRpmIndexer.java;h=57b93b8ec26f365a2df7b3ed7ad41072f9572058;hb=04da2b2f6d5340aa2deb6bd3ed26044d6cb5fd13;hp=a91081d1762447e4a1b22cd53ef6db759baf18f7;hpb=180e64a5924f51c2396221d2d13f53c183aca7d7;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RpmIndexer.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RpmIndexer.java index a91081d17..57b93b8ec 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RpmIndexer.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/RpmIndexer.java @@ -9,6 +9,7 @@ import java.nio.channels.Channels; import javax.jcr.Node; import javax.jcr.Property; +import javax.jcr.nodetype.NodeType; import org.apache.commons.io.FilenameUtils; import org.argeo.slc.SlcException; @@ -22,6 +23,7 @@ import org.freecompany.redline.header.Header; /** Indexes an RPM file. */ public class RpmIndexer implements NodeIndexer, SlcNames { + private Boolean force = false; @Override public Boolean support(String path) { @@ -31,6 +33,16 @@ public class RpmIndexer implements NodeIndexer, SlcNames { @Override public void index(Node node) { try { + if (!support(node.getPath())) + return; + + // Already indexed + if (!force && node.isNodeType(SlcTypes.SLC_RPM)) + return; + + if (!node.isNodeType(NodeType.NT_FILE)) + return; + InputStream in = node.getNode(Node.JCR_CONTENT) .getProperty(Property.JCR_DATA).getBinary().getStream(); ReadableChannelWrapper channel = new ReadableChannelWrapper(