diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/model/IdentifiableBase.java b/wizard-common/src/main/java/org/cobbzilla/wizard/model/IdentifiableBase.java index 13dd6ba..9a9ccf3 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/model/IdentifiableBase.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/model/IdentifiableBase.java @@ -4,9 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; -import org.cobbzilla.util.collection.FieldTransformer; -import org.cobbzilla.util.string.StringUtil; +import org.cobbzilla.util.reflect.ReflectionUtil; import org.cobbzilla.wizard.model.entityconfig.EntityFieldMode; import org.cobbzilla.wizard.model.entityconfig.EntityFieldType; import org.cobbzilla.wizard.model.entityconfig.annotations.ECField; @@ -17,8 +15,9 @@ import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.persistence.Transient; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; import static java.util.UUID.randomUUID; import static org.cobbzilla.util.daemon.ZillaRuntime.*; @@ -120,34 +119,19 @@ public class IdentifiableBase implements Identifiable { @Override public int hashCode() { return getUuid() != null ? getUuid().hashCode() : 0; } public static String[] toUuidArray(List entities) { - return empty(entities) - ? StringUtil.EMPTY_ARRAY - : (String[]) collectArray(entities, UUID); + return entities.stream().map(Identifiable::getUuid).toArray(String[]::new); } - public static List toUuidList(Collection entities) { - if (empty(entities)) return Collections.emptyList(); - return collectList(entities, UUID); + public static List toUuidList(List entities) { + return entities.stream().map(Identifiable::getUuid).collect(Collectors.toList()); } - private static final Map fieldTransformerCache = new ConcurrentHashMap<>(); - protected static FieldTransformer getFieldTransformer(String field) { - FieldTransformer f = fieldTransformerCache.get(field); - if (f == null) { - f = new FieldTransformer(field); - fieldTransformerCache.put(field, f); - } - return f; + public static T[] collectArray(List entities, String field) { + return (T[]) entities.stream().map(e -> ReflectionUtil.get(e, field)).toArray(); } - public static T[] collectArray(Collection entities, String field) { - return (T[]) CollectionUtils.collect(entities, getFieldTransformer(field)).toArray(new String[entities.size()]); - } - public static List collectList(Collection entities, String field) { - return (List) CollectionUtils.collect(entities, getFieldTransformer(field)); - } - public static List collectStringList(Collection entities, String field) { - return (List) CollectionUtils.collect(entities, getFieldTransformer(field)); + public static List collectList(List entities, String field) { + return (List) entities.stream().map(e -> ReflectionUtil.get(e, field)).collect(Collectors.toList()); } } diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/ModelSetup.java b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/ModelSetup.java index 9e4edfd..3680002 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/ModelSetup.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/ModelSetup.java @@ -10,7 +10,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.InvocationHandler; -import org.apache.commons.collections.IteratorUtils; +import org.apache.commons.collections4.IteratorUtils; import org.apache.commons.lang3.ArrayUtils; import org.cobbzilla.util.daemon.AwaitResult; import org.cobbzilla.util.reflect.ReflectionUtil; diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/validation/ValidationResult.java b/wizard-common/src/main/java/org/cobbzilla/wizard/validation/ValidationResult.java index d1f9591..f726353 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/validation/ValidationResult.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/validation/ValidationResult.java @@ -2,8 +2,8 @@ package org.cobbzilla.wizard.validation; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.NoArgsConstructor; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.Transformer; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.Transformer; import org.cobbzilla.util.collection.NameAndValue; import org.cobbzilla.util.string.StringUtil; diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractLdapDAO.java b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractLdapDAO.java index f215f9e..f7607b7 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractLdapDAO.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractLdapDAO.java @@ -2,8 +2,8 @@ package org.cobbzilla.wizard.dao; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.Transformer; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.Transformer; import org.cobbzilla.util.collection.NameAndValue; import org.cobbzilla.wizard.ldap.LdapService; import org.cobbzilla.wizard.model.search.SearchResults; diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniqueEmailEntityDAO.java b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniqueEmailEntityDAO.java index a38b77d..a3767a4 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniqueEmailEntityDAO.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniqueEmailEntityDAO.java @@ -1,7 +1,5 @@ package org.cobbzilla.wizard.dao; -import org.apache.commons.collections.Transformer; -import org.cobbzilla.util.collection.FieldTransformer; import org.cobbzilla.util.collection.MapBuilder; import org.cobbzilla.wizard.model.UniqueEmailEntity; import org.cobbzilla.wizard.validation.UniqueValidatorDaoHelper; @@ -10,8 +8,6 @@ import java.util.Map; public abstract class UniqueEmailEntityDAO extends AbstractUniqueCRUDDAO { - public static final Transformer TO_EMAIL = new FieldTransformer("email"); - public E findByEmail (String email) { return findByUniqueField("email", email.toLowerCase()); } @Override public E findByName (String email) { return findByEmail(email); } diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniquelyNamedEntityDAO.java b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniquelyNamedEntityDAO.java index a5cd0af..fd6e1d1 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniquelyNamedEntityDAO.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/UniquelyNamedEntityDAO.java @@ -1,7 +1,5 @@ package org.cobbzilla.wizard.dao; -import org.apache.commons.collections.Transformer; -import org.cobbzilla.util.collection.FieldTransformer; import org.cobbzilla.util.collection.MapBuilder; import org.cobbzilla.wizard.model.UniquelyNamedEntity; import org.cobbzilla.wizard.validation.UniqueValidatorDaoHelper; @@ -13,8 +11,6 @@ import static org.cobbzilla.util.string.StringUtil.urlDecode; public abstract class UniquelyNamedEntityDAO extends AbstractUniqueCRUDDAO { - public static final Transformer TO_NAME = new FieldTransformer("name"); - @Override public E get(Serializable id) { E found = findByUuid(id.toString()); return found != null ? found : findByName(id.toString()); diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/shard/ShardMapDAO.java b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/shard/ShardMapDAO.java index 467cac4..f969715 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/dao/shard/ShardMapDAO.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/dao/shard/ShardMapDAO.java @@ -1,7 +1,7 @@ package org.cobbzilla.wizard.dao.shard; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.cobbzilla.util.collection.FieldTransformer; import org.cobbzilla.util.collection.mappy.MappyList; import org.cobbzilla.wizard.dao.AbstractCRUDDAO; diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/server/handler/StaticAssetHandler.java b/wizard-server/src/main/java/org/cobbzilla/wizard/server/handler/StaticAssetHandler.java index 85f53c9..2af8d1b 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/server/handler/StaticAssetHandler.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/server/handler/StaticAssetHandler.java @@ -1,7 +1,7 @@ package org.cobbzilla.wizard.server.handler; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.IteratorUtils; +import org.apache.commons.collections4.IteratorUtils; import org.apache.commons.lang3.RandomStringUtils; import org.cobbzilla.util.io.DeleteOnExit; import org.cobbzilla.util.io.FileUtil; diff --git a/wizard-server/src/main/java/org/cobbzilla/wizard/server/listener/ErrbitConfigListener.java b/wizard-server/src/main/java/org/cobbzilla/wizard/server/listener/ErrbitConfigListener.java index 1ee87c7..50af6fc 100644 --- a/wizard-server/src/main/java/org/cobbzilla/wizard/server/listener/ErrbitConfigListener.java +++ b/wizard-server/src/main/java/org/cobbzilla/wizard/server/listener/ErrbitConfigListener.java @@ -3,7 +3,7 @@ package org.cobbzilla.wizard.server.listener; import airbrake.AirbrakeNoticeBuilder; import airbrake.AirbrakeNotifier; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.buffer.CircularFifoBuffer; +import org.apache.commons.collections4.queue.CircularFifoQueue; import org.cobbzilla.util.daemon.ErrorApi; import org.cobbzilla.util.daemon.ZillaRuntime; import org.cobbzilla.wizard.server.RestServer; @@ -43,8 +43,8 @@ public class ErrbitConfigListener extends RestServerLifecycleListenerBase { private String env; private long sendInterval; - private final CircularFifoBuffer dupCache; - private final CircularFifoBuffer fifo; + private final CircularFifoQueue dupCache; + private final CircularFifoQueue fifo; private AirbrakeNotifier notifier; ErrbitApi(ErrorApiConfiguration errorApi) { @@ -52,8 +52,8 @@ public class ErrbitConfigListener extends RestServerLifecycleListenerBase { this.key = errorApi.getKey(); this.env = errorApi.getEnv(); this.sendInterval = errorApi.getSendInterval(); - this.dupCache = new CircularFifoBuffer(errorApi.getDupCacheSize()); - this.fifo = new CircularFifoBuffer(errorApi.getBufferSize()); + this.dupCache = new CircularFifoQueue(errorApi.getDupCacheSize()); + this.fifo = new CircularFifoQueue(errorApi.getBufferSize()); this.notifier = new AirbrakeNotifier(errorApi.getUrl()); } else { log.warn("ErrbitApi: errorApi is null or invalid, not running");