predicate missing library
Hi,
I'm using cq5.5 and i have a code like this:
import javax.jcr.Node; import javax.jcr.RepositoryException; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; import org.apache.jackrabbit.commons.predicate.Predicate; import com.day.cq.commons.predicate.AbstractNodePredicate; @Component @Service @Property(name = "predicate.name", value = "PredicateVideo") public class PredicateVideo extends AbstractNodePredicate implements Predicate { public boolean evaluate(Node node) throws RepositoryException { return true; } }Up to AbstractNodePredicate my eclipse raises an error:
The type org.apache.commons.collections.Predicate cannot be resolved. It is indirectly referenced from required .class files
So i add this dependency:
<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.0</version> </dependency>
but it doesn't resolve my problem.
Is it a problem of dependency? Which is the right dependency?
On the other hand if i remove the interface:
import org.apache.jackrabbit.commons.predicate.Predicate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Component @Service @Property(name = "predicate.name", value = "PredicateVideo") public class PredicateVideo implements Predicate { protected final Logger log = LoggerFactory.getLogger(this.getClass()); public boolean evaluate(Object obj) { return true; } }This code is correct but if i use it with the property predicate="PredicateVideo" the log raises the error:
Unable to retrieve predicate PredicateVideo
Any idea?
Thanks