diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/annotations/Indexable.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/annotations/Indexable.java new file mode 100644 index 0000000000..6917ab391a --- /dev/null +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/annotations/Indexable.java @@ -0,0 +1,9 @@ +package com.netgrif.application.engine.objects.annotations; + +import java.lang.annotation.*; + +@Inherited +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE}) +public @interface Indexable { +} diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/petrinet/domain/PetriNet.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/petrinet/domain/PetriNet.java index a8b2fa447c..e665518ff2 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/petrinet/domain/PetriNet.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/petrinet/domain/PetriNet.java @@ -1,5 +1,7 @@ package com.netgrif.application.engine.objects.petrinet.domain; +import com.netgrif.application.engine.objects.annotations.Indexable; +import com.netgrif.application.engine.objects.annotations.Indexed; import com.netgrif.application.engine.objects.auth.domain.ActorRef; import com.netgrif.application.engine.objects.petrinet.domain.arcs.Arc; import com.netgrif.application.engine.objects.petrinet.domain.arcs.reference.Referencable; @@ -24,6 +26,7 @@ import java.util.*; import java.util.stream.Collectors; +@Indexable @QueryEntity public abstract class PetriNet extends PetriNetObject { @@ -57,6 +60,7 @@ public abstract class PetriNet extends PetriNetObject { @Getter @Setter + @Indexed private String initials; @Getter diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Case.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Case.java index 34c2168398..77f61006f1 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Case.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Case.java @@ -1,6 +1,7 @@ package com.netgrif.application.engine.objects.workflow.domain; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.netgrif.application.engine.objects.annotations.Indexable; import com.netgrif.application.engine.objects.auth.domain.ActorRef; import com.netgrif.application.engine.objects.annotations.Indexed; import com.netgrif.application.engine.objects.petrinet.domain.I18nString; @@ -22,6 +23,7 @@ import java.util.stream.Collectors; @Getter +@Indexable @QueryEntity public abstract class Case implements Serializable { @@ -35,6 +37,7 @@ public abstract class Case implements Serializable { private LocalDateTime lastModified; @Setter + @Indexed private String visualId; @NotNull @@ -48,6 +51,7 @@ public abstract class Case implements Serializable { @NotNull @Setter + @Indexed private String processIdentifier; @Setter diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Task.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Task.java index eb52c24a81..34dd668f92 100644 --- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Task.java +++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/Task.java @@ -1,6 +1,7 @@ package com.netgrif.application.engine.objects.workflow.domain; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.netgrif.application.engine.objects.annotations.Indexable; import com.netgrif.application.engine.objects.annotations.Indexed; import com.netgrif.application.engine.objects.auth.domain.AbstractUser; import com.netgrif.application.engine.objects.petrinet.domain.I18nString; @@ -24,6 +25,7 @@ import java.util.*; @QueryEntity +@Indexable @AllArgsConstructor public abstract class Task implements Serializable { diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/configuration/AbstractMongoIndexesConfigurator.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/configuration/AbstractMongoIndexesConfigurator.java index bb27b1d883..98e3acbd65 100644 --- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/configuration/AbstractMongoIndexesConfigurator.java +++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/configuration/AbstractMongoIndexesConfigurator.java @@ -1,5 +1,6 @@ package com.netgrif.application.engine.adapter.spring.configuration; +import com.netgrif.application.engine.objects.annotations.Indexable; import com.netgrif.application.engine.objects.annotations.Indexed; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.reflect.FieldUtils; @@ -36,7 +37,7 @@ public AbstractMongoIndexesConfigurator(MongoTemplate mongoTemplate) { public void resolveIndexes() { mappingContext.getPersistentEntities() .stream() - .filter(it -> it.isAnnotationPresent(Document.class) && !getEntityIndexBlacklist().contains(it.getType())) + .filter(it -> it.isAnnotationPresent(Indexable.class) && !getEntityIndexBlacklist().contains(it.getType())) .forEach(mongoPersistentEntity -> resolveIndexes(mongoPersistentEntity.getCollection(), mongoPersistentEntity.getType())); }