prefer streams over core/functional globally - first pass
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/fdf596b9 Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/fdf596b9 Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/fdf596b9 Branch: refs/heads/develop Commit: fdf596b92f4162579fc275094e26b1ff4ec4bedf Parents: c7fe187 Author: Paul Merlin <[email protected]> Authored: Mon Nov 28 12:04:48 2016 +0100 Committer: Paul Merlin <[email protected]> Committed: Mon Nov 28 12:46:38 2016 +0100 ---------------------------------------------------------------------- .../api/service/importer/InstanceImporter.java | 3 +- .../org/apache/zest/api/type/ValueType.java | 9 ++--- .../api/unitofwork/NoSuchEntityException.java | 7 ---- .../java/org/apache/zest/api/util/Classes.java | 35 ++++-------------- .../runtime/activation/ActivatorsInstance.java | 22 +++++++++--- .../bootstrap/CompositeAssemblyImpl.java | 27 ++++++-------- .../runtime/bootstrap/ModuleAssemblyImpl.java | 6 ++-- .../runtime/bootstrap/ServiceAssemblyImpl.java | 19 +++++----- .../zest/runtime/composite/CompositeModel.java | 11 +++--- .../runtime/composite/ConstructorsModel.java | 14 ++++---- .../zest/runtime/composite/MixinsModel.java | 4 --- .../zest/runtime/composite/UsesInstance.java | 3 +- .../zest/runtime/injection/DependencyModel.java | 13 +++---- .../ServiceInjectionProviderFactory.java | 12 +++---- .../provider/ThisInjectionProviderFactory.java | 3 +- .../zest/runtime/query/IterableQuerySource.java | 14 +++++--- .../service/ImportedServicesInstance.java | 8 ++--- .../zest/runtime/service/ServicesInstance.java | 8 ++--- .../zest/runtime/structure/TypeLookupImpl.java | 6 ++-- .../structure/CompositeDescriptorTest.java | 3 +- .../spi/value/ValueDeserializerAdapter.java | 4 +-- .../helpers/JSONManyAssociationStateTest.java | 19 ++++------ .../test/indexing/AbstractEntityFinderTest.java | 37 ++++++++++---------- .../support/skeletons/AbstractSQLStartup.java | 8 ++--- .../zest/library/http/AbstractJettyMixin.java | 11 +++--- .../org/apache/zest/library/jmx/ZestMBeans.java | 19 +++------- .../rest/server/api/ContextResource.java | 8 ++--- .../requestreader/DefaultRequestReader.java | 14 +++----- .../responsewriter/ResourceResponseWriter.java | 5 ++- 29 files changed, 150 insertions(+), 202 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/api/src/main/java/org/apache/zest/api/service/importer/InstanceImporter.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/service/importer/InstanceImporter.java b/core/api/src/main/java/org/apache/zest/api/service/importer/InstanceImporter.java index add1636..a6ed355 100644 --- a/core/api/src/main/java/org/apache/zest/api/service/importer/InstanceImporter.java +++ b/core/api/src/main/java/org/apache/zest/api/service/importer/InstanceImporter.java @@ -20,6 +20,7 @@ package org.apache.zest.api.service.importer; +import java.util.Objects; import java.util.stream.Stream; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.service.ImportedServiceDescriptor; @@ -51,7 +52,7 @@ public final class InstanceImporter<T> { return Stream.of( serviceDescriptor, module, layer, application ) .flatMap( holder -> serviceDescriptor.types().map( type -> (T) holder.metaInfo( type ) ) ) - .filter( meta -> meta != null ) + .filter( Objects::nonNull ) .findFirst().orElse( null ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/api/src/main/java/org/apache/zest/api/type/ValueType.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/type/ValueType.java b/core/api/src/main/java/org/apache/zest/api/type/ValueType.java index ed95068..3795d67 100644 --- a/core/api/src/main/java/org/apache/zest/api/type/ValueType.java +++ b/core/api/src/main/java/org/apache/zest/api/type/ValueType.java @@ -19,16 +19,13 @@ */ package org.apache.zest.api.type; -import java.lang.reflect.Type; import java.util.Collections; import java.util.List; -import java.util.function.Function; import java.util.stream.Stream; import org.apache.zest.api.identity.Identity; import org.apache.zest.api.util.NullArgumentException; -import org.apache.zest.functional.Iterables; -import static org.apache.zest.functional.Iterables.first; +import static java.util.stream.Collectors.joining; /** * Base class for types of values in ValueComposites and Properties. @@ -135,7 +132,7 @@ public class ValueType public Class<?> mainType() { - return first( types ); + return types.stream().findFirst().orElse( null ); } @Override @@ -147,7 +144,7 @@ public class ValueType @Override public String toString() { - String name = Iterables.toString( types, Class::getName, "," ); + String name = types.stream().map( Class::getName ).collect( joining( "," ) ); if( name.contains( "," ) ) { name = "{" + name + "}"; http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/api/src/main/java/org/apache/zest/api/unitofwork/NoSuchEntityException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/unitofwork/NoSuchEntityException.java b/core/api/src/main/java/org/apache/zest/api/unitofwork/NoSuchEntityException.java index 689b053..9827a2e 100644 --- a/core/api/src/main/java/org/apache/zest/api/unitofwork/NoSuchEntityException.java +++ b/core/api/src/main/java/org/apache/zest/api/unitofwork/NoSuchEntityException.java @@ -22,7 +22,6 @@ package org.apache.zest.api.unitofwork; import java.util.stream.Stream; import org.apache.zest.api.entity.EntityReference; import org.apache.zest.api.usecase.Usecase; -import org.apache.zest.functional.Iterables; import static java.util.Arrays.stream; @@ -73,12 +72,6 @@ public class NoSuchEntityException return usecase; } - private static Class<?>[] castToArray( Iterable<Class<?>> iterableClasses ) - { - Iterable<Class> types = Iterables.cast( iterableClasses ); - return Iterables.toArray( Class.class, types ); - } - private static String toString( Class<?>[] mixinTypes ) { String reduced = stream( mixinTypes ).map( Class::getName ).reduce( "", ( ret, name ) -> ret + "," + name ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/api/src/main/java/org/apache/zest/api/util/Classes.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/util/Classes.java b/core/api/src/main/java/org/apache/zest/api/util/Classes.java index 7611389..ed215e7 100644 --- a/core/api/src/main/java/org/apache/zest/api/util/Classes.java +++ b/core/api/src/main/java/org/apache/zest/api/util/Classes.java @@ -34,6 +34,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; @@ -242,29 +243,14 @@ public final class Classes return clazz::isAssignableFrom; } - @SuppressWarnings( "raw" ) - public static Predicate<Object> instanceOf( final Class clazz ) + public static Predicate<Object> instanceOf( final Class<?> clazz ) { - return new Predicate<Object>() - { - @Override - public boolean test( Object item ) - { - return clazz.isInstance( item ); - } - }; + return clazz::isInstance; } public static Predicate<Class<?>> hasModifier( final int classModifier ) { - return new Predicate<Class<?>>() - { - @Override - public boolean test( Class<?> item ) - { - return ( item.getModifiers() & classModifier ) != 0; - } - }; + return item -> ( item.getModifiers() & classModifier ) != 0; } public static <T> Function<Type, Stream<T>> forClassHierarchy( final Function<Class<?>, Stream<T>> function ) @@ -363,20 +349,13 @@ public final class Classes .flatMap( TYPES_OF ) .map( RAW_CLASS ) .map( clazz -> clazz.getAnnotation( annotationClass ) ) - .filter( annot -> annot != null ) - .findAny().get(); + .filter( Objects::nonNull ) + .findAny().orElse( null ); } public static Predicate<Member> memberNamed( final String name ) { - return new Predicate<Member>() - { - @Override - public boolean test( Member item ) - { - return item.getName().equals( name ); - } - }; + return item -> item.getName().equals( name ); } /** http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsInstance.java b/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsInstance.java index 8ddd3e3..e682fba 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsInstance.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsInstance.java @@ -20,11 +20,15 @@ package org.apache.zest.runtime.activation; import java.util.Collections; +import java.util.Iterator; import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.Set; +import java.util.stream.StreamSupport; import org.apache.zest.api.activation.Activator; import org.apache.zest.api.activation.PassivationException; -import org.apache.zest.functional.Iterables; + +import static java.util.stream.Collectors.toCollection; /** * Instance of a Zest Activators of one Activation target. Contains ordered @@ -35,7 +39,7 @@ import org.apache.zest.functional.Iterables; public class ActivatorsInstance<ActivateeType> implements Activator<ActivateeType> { - @SuppressWarnings( {"raw", "unchecked"} ) + @SuppressWarnings( { "raw", "unchecked" } ) public static final ActivatorsInstance EMPTY = new ActivatorsInstance( Collections.emptyList() ); private final Iterable<Activator<ActivateeType>> activators; @@ -70,8 +74,10 @@ public class ActivatorsInstance<ActivateeType> throws Exception { Set<Exception> exceptions = new LinkedHashSet<>(); - for( Activator<ActivateeType> activator : Iterables.reverse( activators ) ) + Iterator<Activator<ActivateeType>> iterator = reverseActivatorsIterator(); + while( iterator.hasNext() ) { + Activator<ActivateeType> activator = iterator.next(); try { activator.beforePassivation( passivating ); @@ -92,8 +98,10 @@ public class ActivatorsInstance<ActivateeType> throws Exception { Set<Exception> exceptions = new LinkedHashSet<>(); - for( Activator<ActivateeType> activator : Iterables.reverse( activators ) ) + Iterator<Activator<ActivateeType>> iterator = reverseActivatorsIterator(); + while( iterator.hasNext() ) { + Activator<ActivateeType> activator = iterator.next(); try { activator.afterPassivation( passivated ); @@ -109,4 +117,10 @@ public class ActivatorsInstance<ActivateeType> } } + private Iterator<Activator<ActivateeType>> reverseActivatorsIterator() + { + return StreamSupport.stream( activators.spliterator(), false ) + .collect( toCollection( LinkedList::new ) ) + .descendingIterator(); + } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java index 1d0ff01..6f4bbbf 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java @@ -106,9 +106,6 @@ import static org.apache.zest.api.util.Classes.isAssignableFrom; import static org.apache.zest.api.util.Classes.typeOf; import static org.apache.zest.api.util.Classes.typesOf; import static org.apache.zest.api.util.Classes.wrapperClass; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.iterable; import static org.apache.zest.runtime.legacy.Specifications.translate; /** @@ -312,7 +309,7 @@ public abstract class CompositeAssemblyImpl } // Check generic implementations - mixinClass = findGenericImplementation( method, mixinDeclarations ); + mixinClass = findGenericImplementation( method, mixinDeclarations.stream() ); if( mixinClass != null ) { return implementMethodWithClass( method, mixinClass ); @@ -322,26 +319,22 @@ public abstract class CompositeAssemblyImpl + "\nin\n " + types ); } - @SuppressWarnings( { "raw", "unchecked" } ) private Class<?> findTypedImplementation( final Method method, Stream<Class<?>> mixins ) { // Check if mixinClass implements the method. If so, check if the mixinClass is generic or if the filter passes. // If a mixinClass is both generic AND non-generic at the same time, then the filter applies to the non-generic // side only. Predicate<Class<?>> appliesToSpec = item -> helper.appliesTo( item, method, types, item ); - return mixins - .filter( isAssignableFrom( method.getDeclaringClass() ) - .and( Genericpredicate.INSTANCE - .or( appliesToSpec ) ) ) - .findFirst().orElse( null ); + return mixins.filter( isAssignableFrom( method.getDeclaringClass() ) + .and( Genericpredicate.INSTANCE.or( appliesToSpec ) ) ) + .findFirst().orElse( null ); } - @SuppressWarnings( "unchecked" ) - private Class<?> findGenericImplementation( final Method method, Iterable<Class<?>> mixins ) + private Class<?> findGenericImplementation( final Method method, Stream<Class<?>> mixins ) { // Check if mixinClass is generic and the applies-to filter passes - return first( filter( Genericpredicate.INSTANCE - .and( item -> helper.appliesTo( item, method, types, item ) ), mixins ) ); + Predicate<Class<?>> appliesToSpec = item -> helper.appliesTo( item, method, types, item ); + return mixins.filter( Genericpredicate.INSTANCE.and( appliesToSpec ) ).findFirst().orElse( null ); } private MixinModel implementMethodWithClass( Method method, Class mixinClass ) @@ -500,10 +493,12 @@ public abstract class CompositeAssemblyImpl { Annotation[] parameterAnnotation = parameterAnnotations[ i ]; - Name nameAnnotation = (Name) first( filter( isType( Name.class ), iterable( parameterAnnotation ) ) ); + Name nameAnnotation = (Name) Stream.of( parameterAnnotation ).filter( isType( Name.class ) ) + .findFirst().orElse( null ); String name = nameAnnotation == null ? "param" + ( i + 1 ) : nameAnnotation.value(); - boolean optional = first( filter( isType( Optional.class ), iterable( parameterAnnotation ) ) ) != null; + boolean optional = Stream.of( parameterAnnotation ).filter( isType( Optional.class ) ) + .findFirst().isPresent(); ValueConstraintsModel parameterConstraintsModel = constraintsFor( Arrays.stream( parameterAnnotation ), parameterTypes[ i ], http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java index 10e1b21..1dea286 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java @@ -72,7 +72,6 @@ import org.apache.zest.bootstrap.ValueAssembly; import org.apache.zest.bootstrap.ValueDeclaration; import org.apache.zest.bootstrap.identity.DefaultIdentityGeneratorAssembler; import org.apache.zest.bootstrap.unitofwork.DefaultUnitOfWorkAssembler; -import org.apache.zest.functional.Iterables; import org.apache.zest.runtime.activation.ActivatorsModel; import org.apache.zest.runtime.composite.TransientModel; import org.apache.zest.runtime.composite.TransientsModel; @@ -392,9 +391,10 @@ final class ModuleAssemblyImpl for (Class<?> serviceType : serviceTypes) { - if (Iterables.matchesAny(AssemblySpecifications.ofAnyType(serviceType), serviceAssemblies)) + if( serviceAssemblies.stream().anyMatch( AssemblySpecifications.ofAnyType( serviceType ) ) ) { - Iterables.addAll(assemblies, Iterables.filter(AssemblySpecifications.ofAnyType(serviceType), serviceAssemblies)); + serviceAssemblies.stream().filter( AssemblySpecifications.ofAnyType( serviceType ) ) + .forEach( assemblies::add ); } else { http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java index 268a819..5d5b2e8 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java @@ -34,11 +34,7 @@ import org.apache.zest.api.util.Annotations; import org.apache.zest.api.util.Classes; import org.apache.zest.bootstrap.ServiceAssembly; import org.apache.zest.bootstrap.StateDeclarations; -import org.apache.zest.functional.Iterables; import org.apache.zest.runtime.activation.ActivatorsModel; -import org.apache.zest.runtime.association.AssociationsModel; -import org.apache.zest.runtime.association.ManyAssociationsModel; -import org.apache.zest.runtime.association.NamedAssociationsModel; import org.apache.zest.runtime.service.ServiceModel; import org.apache.zest.runtime.structure.ModuleModel; @@ -74,8 +70,9 @@ public final class ServiceAssemblyImpl extends CompositeAssemblyImpl try { buildComposite( helper, stateDeclarations ); - List<Class<? extends Activator<?>>> activatorClasses = Iterables.toList( - Iterables.<Class<? extends Activator<?>>>flatten( activators, activatorsDeclarations( types.stream() ) ) ); + List<Class<? extends Activator<?>>> activatorClasses = Stream + .concat( activators.stream(), activatorsDeclarations( types ) ) + .collect( Collectors.toList() ); return new ServiceModel( module, types, visibility, metaInfo, new ActivatorsModel( activatorClasses ), mixinsModel, stateModel, compositeMethodsModel, @@ -87,12 +84,12 @@ public final class ServiceAssemblyImpl extends CompositeAssemblyImpl } } - private Iterable<Class<? extends Activator<?>>> activatorsDeclarations( Stream<? extends Class<?>> typess ) + private Stream<Class<? extends Activator<?>>> activatorsDeclarations( List<? extends Class<?>> types ) { - return typess.flatMap( Classes::typesOf ) -// .filter( type -> Annotations.annotationOn( type, Activators.class ) == null ) - .flatMap( this::getAnnotations ) - .collect( Collectors.toList() ); + return types.stream() + .flatMap( Classes::typesOf ) + //.filter( type -> Annotations.annotationOn( type, Activators.class ) == null ) + .flatMap( this::getAnnotations ); } private Stream<? extends Class<? extends Activator<?>>> getAnnotations( Type type ) http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/composite/CompositeModel.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/composite/CompositeModel.java b/core/runtime/src/main/java/org/apache/zest/runtime/composite/CompositeModel.java index c872ff7..eb9ddb7 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/composite/CompositeModel.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/composite/CompositeModel.java @@ -35,14 +35,11 @@ import org.apache.zest.api.composite.CompositeDescriptor; import org.apache.zest.api.composite.InvalidCompositeException; import org.apache.zest.api.structure.ModuleDescriptor; import org.apache.zest.functional.HierarchicalVisitor; -import org.apache.zest.functional.Iterables; import org.apache.zest.functional.VisitableHierarchy; import org.apache.zest.runtime.injection.Dependencies; import org.apache.zest.runtime.injection.DependencyModel; import static java.lang.reflect.Proxy.newProxyInstance; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.toList; /** * JAVADOC @@ -177,12 +174,12 @@ public abstract class CompositeModel @SuppressWarnings( { "raw", "unchecked" } ) private void createProxyClass() { - Class<?> mainType = first( types ); + Class<?> mainType = types.stream().findFirst().get(); if( mainType.isInterface() ) { ClassLoader proxyClassloader = mainType.getClassLoader(); - Class<?>[] interfaces = Iterables.toArray( Class.class, Iterables.<Class>cast( types ) ); + Class<?>[] interfaces = types.stream().map( Class.class::cast ).toArray( Class[]::new ); proxyClass = (Class<? extends Composite>) ProxyGenerator.createProxyClass( proxyClassloader, interfaces ); try @@ -229,7 +226,7 @@ public abstract class CompositeModel public Composite newProxy( InvocationHandler invocationHandler ) throws ConstructionException { - Class<?> mainType = first( types ); + Class<?> mainType = types.stream().findFirst().get(); if( mainType.isInterface() ) { try @@ -276,6 +273,6 @@ public abstract class CompositeModel @Override public String toString() { - return toList( types ).toString(); + return types.toString(); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/composite/ConstructorsModel.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/composite/ConstructorsModel.java b/core/runtime/src/main/java/org/apache/zest/runtime/composite/ConstructorsModel.java index 3ea8642..5608027 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/composite/ConstructorsModel.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/composite/ConstructorsModel.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.function.Predicate; import java.util.stream.Stream; import org.apache.zest.api.common.ConstructionException; import org.apache.zest.api.composite.CompositeDescriptor; @@ -41,20 +42,16 @@ import org.apache.zest.api.util.Classes; import org.apache.zest.bootstrap.BindingException; import org.apache.zest.functional.HierarchicalVisitor; import org.apache.zest.functional.HierarchicalVisitorAdapter; -import org.apache.zest.runtime.legacy.Specifications; import org.apache.zest.functional.VisitableHierarchy; import org.apache.zest.runtime.injection.Dependencies; import org.apache.zest.runtime.injection.DependencyModel; import org.apache.zest.runtime.injection.InjectedParametersModel; import org.apache.zest.runtime.injection.InjectionContext; import org.apache.zest.runtime.injection.ParameterizedTypeInstance; +import org.apache.zest.runtime.legacy.Specifications; import org.apache.zest.runtime.model.Binder; import org.apache.zest.runtime.model.Resolution; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.iterable; - /** * JAVADOC */ @@ -132,8 +129,11 @@ public final class ConstructorsModel Annotation[][] parameterAnnotations = injectedConstructor.getParameterAnnotations(); for( Type type : injectedConstructor.getGenericParameterTypes() ) { - Annotation injectionAnnotation = first( - filter( Specifications.translate( Annotations.type(), Annotations.hasAnnotation( InjectionScope.class ) ), iterable( parameterAnnotations[ idx ] ) ) ); + Predicate<Annotation> injectionAnnotationSpec = Specifications.translate( + Annotations.type(), Annotations.hasAnnotation( InjectionScope.class ) ); + Annotation injectionAnnotation = Stream.of( parameterAnnotations[ idx ] ) + .filter( injectionAnnotationSpec ) + .findFirst().orElse( null ); if( injectionAnnotation == null ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/composite/MixinsModel.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/composite/MixinsModel.java b/core/runtime/src/main/java/org/apache/zest/runtime/composite/MixinsModel.java index 721794f..d3564c1 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/composite/MixinsModel.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/composite/MixinsModel.java @@ -30,8 +30,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.function.Function; -import java.util.function.Predicate; import java.util.stream.Stream; import org.apache.zest.api.util.Classes; import org.apache.zest.bootstrap.BindingException; @@ -45,8 +43,6 @@ import org.apache.zest.runtime.model.Binder; import org.apache.zest.runtime.model.Resolution; import static org.apache.zest.api.util.Classes.interfacesOf; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.map; /** * Base implementation of model for mixins. This records the mapping between methods in the Composite http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/composite/UsesInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/composite/UsesInstance.java b/core/runtime/src/main/java/org/apache/zest/runtime/composite/UsesInstance.java index abf21f8..af0ff09 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/composite/UsesInstance.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/composite/UsesInstance.java @@ -24,7 +24,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.apache.zest.functional.Iterables; /** * JAVADOC @@ -79,7 +78,7 @@ public final class UsesInstance public Object[] toArray() { - return Iterables.toArray( uses ); + return uses.toArray(); } @Override http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/injection/DependencyModel.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/injection/DependencyModel.java b/core/runtime/src/main/java/org/apache/zest/runtime/injection/DependencyModel.java index 8a48f0b..23c5659 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/injection/DependencyModel.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/injection/DependencyModel.java @@ -25,14 +25,15 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Collections; +import java.util.Iterator; import java.util.function.Function; import java.util.function.Predicate; +import java.util.stream.Stream; import org.apache.zest.api.common.ConstructionException; import org.apache.zest.api.common.Optional; import org.apache.zest.api.composite.DependencyDescriptor; import org.apache.zest.bootstrap.BindingException; import org.apache.zest.bootstrap.InvalidInjectionException; -import org.apache.zest.functional.Iterables; import org.apache.zest.functional.Visitable; import org.apache.zest.functional.Visitor; import org.apache.zest.runtime.injection.provider.CachingInjectionProviderDecorator; @@ -42,7 +43,6 @@ import org.apache.zest.runtime.model.Binder; import org.apache.zest.runtime.model.Resolution; import static org.apache.zest.api.util.Annotations.isType; -import static org.apache.zest.functional.Iterables.iterable; /** * JAVADOC @@ -53,7 +53,7 @@ public final class DependencyModel { public static boolean isOptional( Annotation injectionAnnotation, Annotation[] annotations ) { - if( Iterables.matchesAny( isType( Optional.class ), iterable( annotations ) ) ) + if( Stream.of( annotations ).anyMatch( isType( Optional.class ) ) ) { return true; } @@ -335,14 +335,15 @@ public final class DependencyModel if( injectionResult instanceof Iterable ) { - if( Iterable.class.isAssignableFrom( rawInjectionClass ) || rawInjectionClass.isInstance( - injectionResult ) ) + if( Iterable.class.isAssignableFrom( rawInjectionClass ) + || rawInjectionClass.isInstance( injectionResult ) ) { return injectionResult; } else { - return Iterables.first( (Iterable) injectionResult ); + Iterator iterator = ( (Iterable) injectionResult ).iterator(); + return iterator.hasNext() ? iterator.next() : null; } } else http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ServiceInjectionProviderFactory.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ServiceInjectionProviderFactory.java b/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ServiceInjectionProviderFactory.java index 9c2d094..9d0ed4f 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ServiceInjectionProviderFactory.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ServiceInjectionProviderFactory.java @@ -25,6 +25,7 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.function.Function; import java.util.function.Predicate; +import java.util.stream.Stream; import org.apache.zest.api.service.NoSuchServiceException; import org.apache.zest.api.service.ServiceReference; import org.apache.zest.api.service.qualifier.Qualifier; @@ -32,17 +33,14 @@ import org.apache.zest.api.util.Annotations; import org.apache.zest.api.util.Classes; import org.apache.zest.bootstrap.InvalidInjectionException; import org.apache.zest.functional.Iterables; -import org.apache.zest.runtime.legacy.Specifications; import org.apache.zest.runtime.injection.DependencyModel; import org.apache.zest.runtime.injection.InjectionContext; import org.apache.zest.runtime.injection.InjectionProvider; import org.apache.zest.runtime.injection.InjectionProviderFactory; +import org.apache.zest.runtime.legacy.Specifications; import org.apache.zest.runtime.model.Resolution; import static org.apache.zest.api.util.Annotations.hasAnnotation; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.iterable; public final class ServiceInjectionProviderFactory implements InjectionProviderFactory @@ -53,8 +51,10 @@ public final class ServiceInjectionProviderFactory throws InvalidInjectionException { // TODO This could be changed to allow multiple @Qualifier annotations - Annotation qualifierAnnotation = first( filter( Specifications.translate( Annotations.type(), hasAnnotation( Qualifier.class ) ), iterable( dependencyModel - .annotations() ) ) ); + Annotation qualifierAnnotation = Stream.of( dependencyModel.annotations() ) + .filter( Specifications.translate( Annotations.type(), + hasAnnotation( Qualifier.class ) ) ) + .findFirst().orElse( null ); Predicate<ServiceReference<?>> serviceQualifier = null; if( qualifierAnnotation != null ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ThisInjectionProviderFactory.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ThisInjectionProviderFactory.java b/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ThisInjectionProviderFactory.java index 4caf929..4ef09b6 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ThisInjectionProviderFactory.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/injection/provider/ThisInjectionProviderFactory.java @@ -28,7 +28,6 @@ import java.util.stream.Stream; import org.apache.zest.api.composite.CompositeDescriptor; import org.apache.zest.api.util.Classes; import org.apache.zest.bootstrap.InvalidInjectionException; -import org.apache.zest.functional.Iterables; import org.apache.zest.runtime.composite.ProxyGenerator; import org.apache.zest.runtime.injection.DependencyModel; import org.apache.zest.runtime.injection.InjectionContext; @@ -97,7 +96,7 @@ public final class ThisInjectionProviderFactory } else { - interfaces = Iterables.toArray( Class.class, Iterables.cast( types ) ); + interfaces = types.stream().map( Class.class::cast ).toArray( Class[]::new ); proxyClass = ProxyGenerator.createProxyClass( mainType.getClassLoader(), interfaces ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/query/IterableQuerySource.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/query/IterableQuerySource.java b/core/runtime/src/main/java/org/apache/zest/runtime/query/IterableQuerySource.java index 14d4ead..c619f18 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/query/IterableQuerySource.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/query/IterableQuerySource.java @@ -26,13 +26,16 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.function.Predicate; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; import org.apache.zest.api.composite.Composite; import org.apache.zest.api.property.Property; import org.apache.zest.api.query.grammar.OrderBy; -import org.apache.zest.api.util.Classes; -import org.apache.zest.functional.Iterables; import org.apache.zest.spi.query.QuerySource; +import static java.util.stream.Collectors.toList; +import static org.apache.zest.api.util.Classes.instanceOf; + /** * JAVADOC */ @@ -153,13 +156,16 @@ public class IterableQuerySource @SuppressWarnings( {"raw", "unchecked"} ) private <T> List<T> filter( Class<T> resultType, Predicate whereClause ) { + Stream stream = StreamSupport.stream( iterable.spliterator(), false ); if( whereClause == null ) { - return Iterables.toList( Iterables.filter( Classes.instanceOf( resultType ), iterable ) ); + return List.class.cast( stream.filter( resultType::isInstance ) + .collect( toList() ) ); } else { - return Iterables.toList( Iterables.filter( Classes.instanceOf( resultType ).and( whereClause ), iterable ) ); + return List.class.cast( stream.filter( instanceOf( resultType ).and( whereClause ) ) + .collect( toList() ) ); } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/service/ImportedServicesInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/service/ImportedServicesInstance.java b/core/runtime/src/main/java/org/apache/zest/runtime/service/ImportedServicesInstance.java index 5e7e8c6..c3e5eef 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/service/ImportedServicesInstance.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/service/ImportedServicesInstance.java @@ -29,12 +29,10 @@ import org.apache.zest.api.activation.PassivationException; import org.apache.zest.api.common.Visibility; import org.apache.zest.api.service.ImportedServiceDescriptor; import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.functional.Iterables; import org.apache.zest.runtime.activation.ActivationDelegate; import org.apache.zest.runtime.activation.ActivatorsInstance; -import static org.apache.zest.api.util.Classes.instanceOf; -import static org.apache.zest.functional.Iterables.filter; +import static java.util.stream.Collectors.toList; /** * JAVADOC @@ -67,7 +65,9 @@ public class ImportedServicesInstance public void activate() throws ActivationException { - Iterable<Activation> activatees = Iterables.<Activation>cast( filter( instanceOf( Activation.class ), serviceReferences ) ); + Iterable<Activation> activatees = serviceReferences.stream().filter( Activation.class::isInstance ) + .map( Activation.class::cast ) + .collect( toList() ); activation.activate( ActivatorsInstance.EMPTY, activatees ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/service/ServicesInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/service/ServicesInstance.java b/core/runtime/src/main/java/org/apache/zest/runtime/service/ServicesInstance.java index 3cc42e5..ddfd34f 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/service/ServicesInstance.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/service/ServicesInstance.java @@ -29,12 +29,10 @@ import org.apache.zest.api.activation.PassivationException; import org.apache.zest.api.common.Visibility; import org.apache.zest.api.service.ServiceDescriptor; import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.functional.Iterables; import org.apache.zest.runtime.activation.ActivationDelegate; import org.apache.zest.runtime.activation.ActivatorsInstance; -import static org.apache.zest.api.util.Classes.instanceOf; -import static org.apache.zest.functional.Iterables.filter; +import static java.util.stream.Collectors.toList; /** * JAVADOC @@ -65,7 +63,9 @@ public class ServicesInstance public void activate() throws ActivationException { - Iterable<Activation> activatees = Iterables.<Activation>cast( filter( instanceOf( Activation.class ), serviceReferences ) ); + Iterable<Activation> activatees = serviceReferences.stream().filter( Activation.class::isInstance ) + .map( Activation.class::cast ) + .collect( toList() ); activation.activate( ActivatorsInstance.EMPTY, activatees ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/main/java/org/apache/zest/runtime/structure/TypeLookupImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/structure/TypeLookupImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/structure/TypeLookupImpl.java index 7aaec46..a36a65d 100644 --- a/core/runtime/src/main/java/org/apache/zest/runtime/structure/TypeLookupImpl.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/structure/TypeLookupImpl.java @@ -42,7 +42,6 @@ import static java.util.stream.Stream.concat; import static org.apache.zest.api.common.Visibility.application; import static org.apache.zest.api.common.Visibility.layer; import static org.apache.zest.api.util.Classes.interfacesOf; -import static org.apache.zest.functional.Iterables.first; /** * Central place for Composite Type lookups. @@ -240,9 +239,10 @@ class TypeLookupImpl } @Override - public ModelDescriptor lookupServiceModel( Type serviceType1 ) + public ModelDescriptor lookupServiceModel( Type serviceType ) { - return serviceModels.computeIfAbsent( serviceType1, key -> first( lookupServiceModels( key ) ) ); + return serviceModels.computeIfAbsent( serviceType, + key -> lookupServiceModels( key ).stream().findFirst().orElse( null ) ); } @Override http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/runtime/src/test/java/org/apache/zest/runtime/structure/CompositeDescriptorTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/zest/runtime/structure/CompositeDescriptorTest.java b/core/runtime/src/test/java/org/apache/zest/runtime/structure/CompositeDescriptorTest.java index ec9aa4a..42e0893 100644 --- a/core/runtime/src/test/java/org/apache/zest/runtime/structure/CompositeDescriptorTest.java +++ b/core/runtime/src/test/java/org/apache/zest/runtime/structure/CompositeDescriptorTest.java @@ -20,17 +20,16 @@ package org.apache.zest.runtime.structure; import org.apache.zest.api.composite.CompositeDescriptor; -import org.junit.Test; import org.apache.zest.api.composite.TransientComposite; import org.apache.zest.api.composite.TransientDescriptor; import org.apache.zest.bootstrap.AssemblyException; import org.apache.zest.bootstrap.ModuleAssembly; import org.apache.zest.test.AbstractZestTest; +import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.apache.zest.functional.Iterables.first; public class CompositeDescriptorTest extends AbstractZestTest http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/spi/src/main/java/org/apache/zest/spi/value/ValueDeserializerAdapter.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/value/ValueDeserializerAdapter.java b/core/spi/src/main/java/org/apache/zest/spi/value/ValueDeserializerAdapter.java index 94ffd0f..85884ae 100644 --- a/core/spi/src/main/java/org/apache/zest/spi/value/ValueDeserializerAdapter.java +++ b/core/spi/src/main/java/org/apache/zest/spi/value/ValueDeserializerAdapter.java @@ -58,8 +58,6 @@ import org.apache.zest.api.value.ValueDescriptor; import org.apache.zest.api.value.ValueDeserializer; import org.apache.zest.api.value.ValueSerializationException; -import static org.apache.zest.functional.Iterables.empty; - /** * Adapter for pull-parsing and tree-parsing capable ValueDeserializers. * @@ -673,7 +671,7 @@ public abstract class ValueDeserializerAdapter<InputType, InputNodeType> Object entityRefs = stateMap.get( manyAssociation.qualifiedName().name() ); if( entityRefs == null ) { - return empty(); + return Collections.emptySet(); } //noinspection unchecked return (Iterable<EntityReference>) entityRefs; http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/spi/src/test/java/org/apache/zest/spi/entitystore/helpers/JSONManyAssociationStateTest.java ---------------------------------------------------------------------- diff --git a/core/spi/src/test/java/org/apache/zest/spi/entitystore/helpers/JSONManyAssociationStateTest.java b/core/spi/src/test/java/org/apache/zest/spi/entitystore/helpers/JSONManyAssociationStateTest.java index f2ebb41..afc3ffc 100644 --- a/core/spi/src/test/java/org/apache/zest/spi/entitystore/helpers/JSONManyAssociationStateTest.java +++ b/core/spi/src/test/java/org/apache/zest/spi/entitystore/helpers/JSONManyAssociationStateTest.java @@ -19,22 +19,20 @@ */ package org.apache.zest.spi.entitystore.helpers; +import java.util.ArrayList; import java.util.List; -import java.util.function.Function; +import org.apache.zest.api.entity.EntityReference; import org.apache.zest.api.time.SystemTime; +import org.apache.zest.spi.entity.EntityStatus; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.junit.Test; -import org.apache.zest.api.entity.EntityReference; -import org.apache.zest.spi.entity.EntityStatus; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertThat; -import static org.apache.zest.functional.Iterables.map; -import static org.apache.zest.functional.Iterables.toList; public class JSONManyAssociationStateTest { @@ -127,14 +125,11 @@ public class JSONManyAssociationStateTest assertThat( jsonState.contains( EntityReference.parseEntityReference( "2" ) ), is( true ) ); assertThat( jsonState.contains( EntityReference.parseEntityReference( "1" ) ), is( true ) ); - List<String> refList = toList( map( new Function<EntityReference, String>() + List<String> refList = new ArrayList<>(); + for( EntityReference ref : jsonState ) { - @Override - public String apply( EntityReference from ) - { - return from.identity().toString(); - } - }, jsonState ) ); + refList.add( ref.identity().toString() ); + } assertThat( refList.isEmpty(), is( false ) ); assertArrayEquals( new String[] { http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/core/testsupport/src/main/java/org/apache/zest/test/indexing/AbstractEntityFinderTest.java ---------------------------------------------------------------------- diff --git a/core/testsupport/src/main/java/org/apache/zest/test/indexing/AbstractEntityFinderTest.java b/core/testsupport/src/main/java/org/apache/zest/test/indexing/AbstractEntityFinderTest.java index 8010176..0538448 100644 --- a/core/testsupport/src/main/java/org/apache/zest/test/indexing/AbstractEntityFinderTest.java +++ b/core/testsupport/src/main/java/org/apache/zest/test/indexing/AbstractEntityFinderTest.java @@ -27,14 +27,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Predicate; -import org.apache.zest.api.injection.scope.Structure; -import org.apache.zest.api.structure.Module; -import org.junit.Before; -import org.junit.Test; +import java.util.stream.StreamSupport; import org.apache.zest.api.composite.Composite; import org.apache.zest.api.entity.EntityReference; +import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.query.grammar.OrderBy; import org.apache.zest.api.service.ServiceReference; +import org.apache.zest.api.structure.Module; import org.apache.zest.spi.query.EntityFinder; import org.apache.zest.spi.query.EntityFinderException; import org.apache.zest.spi.query.IndexExporter; @@ -43,8 +42,10 @@ import org.apache.zest.test.indexing.model.Female; import org.apache.zest.test.indexing.model.Male; import org.apache.zest.test.indexing.model.Nameable; import org.apache.zest.test.indexing.model.Person; +import org.junit.Before; +import org.junit.Test; -import static org.junit.Assert.assertEquals; +import static java.util.stream.Collectors.toList; import static org.apache.zest.api.query.QueryExpressions.and; import static org.apache.zest.api.query.QueryExpressions.eq; import static org.apache.zest.api.query.QueryExpressions.ge; @@ -57,8 +58,8 @@ import static org.apache.zest.api.query.QueryExpressions.or; import static org.apache.zest.api.query.QueryExpressions.orderBy; import static org.apache.zest.api.query.QueryExpressions.templateFor; import static org.apache.zest.api.query.QueryExpressions.variable; -import static org.apache.zest.functional.Iterables.toList; import static org.apache.zest.test.indexing.NameableAssert.assertNames; +import static org.junit.Assert.assertEquals; /** * Abstract satisfiedBy with tests for the EntityFinder interface. @@ -339,12 +340,12 @@ public abstract class AbstractEntityFinderTest throws EntityFinderException { // should return only 2 entities - final List<EntityReference> references = toList( entityFinder.findEntities( - Nameable.class, - ALL, - NO_SORTING, - NO_FIRST_RESULT, 2, - NO_VARIABLES ) ); + final List<EntityReference> references = StreamSupport.stream( + entityFinder.findEntities( Nameable.class, + ALL, + NO_SORTING, + NO_FIRST_RESULT, 2, + NO_VARIABLES ).spliterator(), false ).collect( toList() ); assertEquals( "2 identitities", 2, references.size() ); } @@ -353,12 +354,12 @@ public abstract class AbstractEntityFinderTest throws EntityFinderException { // should return only 2 entities starting with third one - final List<EntityReference> references = toList( entityFinder.findEntities( - Nameable.class, - ALL, - NO_SORTING, - 3, 2, - NO_VARIABLES ) ); + final List<EntityReference> references = StreamSupport.stream( + entityFinder.findEntities( Nameable.class, + ALL, + NO_SORTING, + 3, 2, + NO_VARIABLES ).spliterator(), false ).collect( toList() ); assertEquals( "2 identitities", 2, references.size() ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/extensions/indexing-sql/src/main/java/org/apache/zest/index/sql/support/skeletons/AbstractSQLStartup.java ---------------------------------------------------------------------- diff --git a/extensions/indexing-sql/src/main/java/org/apache/zest/index/sql/support/skeletons/AbstractSQLStartup.java b/extensions/indexing-sql/src/main/java/org/apache/zest/index/sql/support/skeletons/AbstractSQLStartup.java index b09e52d..671785a 100644 --- a/extensions/indexing-sql/src/main/java/org/apache/zest/index/sql/support/skeletons/AbstractSQLStartup.java +++ b/extensions/indexing-sql/src/main/java/org/apache/zest/index/sql/support/skeletons/AbstractSQLStartup.java @@ -67,7 +67,6 @@ import org.apache.zest.api.structure.LayerDescriptor; import org.apache.zest.api.structure.ModuleDescriptor; import org.apache.zest.api.value.ValueDescriptor; import org.apache.zest.functional.HierarchicalVisitorAdapter; -import org.apache.zest.functional.Iterables; import org.apache.zest.index.reindexer.Reindexer; import org.apache.zest.index.sql.support.api.SQLAppStartup; import org.apache.zest.index.sql.support.api.SQLTypeInfo; @@ -1437,10 +1436,9 @@ public abstract class AbstractSQLStartup else { valueDescriptors.add( new CompositeDescriptorInfo( - (LayerDescriptor) Iterables - .first( Iterables.skip( 1, currentPath ) ), - (ModuleDescriptor) Iterables.first( currentPath ), - (CompositeDescriptor) visited ) ); + (LayerDescriptor) currentPath.stream().skip( 1 ).findFirst().orElse( null ), + (ModuleDescriptor) currentPath.stream().findFirst().orElse( null ), + (CompositeDescriptor) visited ) ); } return false; http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/libraries/http/src/main/java/org/apache/zest/library/http/AbstractJettyMixin.java ---------------------------------------------------------------------- diff --git a/libraries/http/src/main/java/org/apache/zest/library/http/AbstractJettyMixin.java b/libraries/http/src/main/java/org/apache/zest/library/http/AbstractJettyMixin.java index ad559d9..adc01cc 100644 --- a/libraries/http/src/main/java/org/apache/zest/library/http/AbstractJettyMixin.java +++ b/libraries/http/src/main/java/org/apache/zest/library/http/AbstractJettyMixin.java @@ -26,6 +26,8 @@ import javax.servlet.Filter; import javax.servlet.Servlet; import javax.servlet.ServletContextListener; import org.apache.zest.api.identity.Identity; +import org.apache.zest.api.service.ServiceReference; +import org.apache.zest.library.http.Interface.Protocol; import org.eclipse.jetty.jmx.MBeanContainer; import org.eclipse.jetty.security.SecurityHandler; import org.eclipse.jetty.server.Connector; @@ -38,9 +40,6 @@ import org.eclipse.jetty.server.handler.ErrorHandler; import org.eclipse.jetty.server.session.SessionHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHandler; -import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.functional.Iterables; -import org.apache.zest.library.http.Interface.Protocol; import static org.apache.zest.library.http.JettyConfigurationHelper.addContextListeners; import static org.apache.zest.library.http.JettyConfigurationHelper.addFilters; @@ -74,9 +73,9 @@ public abstract class AbstractJettyMixin { this.identity = identity; this.server = jettyServer; - this.contextListeners = Iterables.unique( contextListeners ); - this.servlets = Iterables.unique( servlets ); - this.filters = Iterables.unique( filters ); + this.contextListeners = contextListeners; + this.servlets = servlets; + this.filters = filters; this.mBeanServer = mBeanServer; } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/libraries/jmx/src/main/java/org/apache/zest/library/jmx/ZestMBeans.java ---------------------------------------------------------------------- diff --git a/libraries/jmx/src/main/java/org/apache/zest/library/jmx/ZestMBeans.java b/libraries/jmx/src/main/java/org/apache/zest/library/jmx/ZestMBeans.java index ee48065..bf4e1b2 100644 --- a/libraries/jmx/src/main/java/org/apache/zest/library/jmx/ZestMBeans.java +++ b/libraries/jmx/src/main/java/org/apache/zest/library/jmx/ZestMBeans.java @@ -19,30 +19,21 @@ */ package org.apache.zest.library.jmx; -import java.util.function.Predicate; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; -import org.apache.zest.functional.Iterables; /** * Helper for working with Zest MBeans. */ public class ZestMBeans { - public static ObjectName findServiceName( MBeanServer server, String applicationName, String serviceId ) - throws MalformedObjectNameException + throws MalformedObjectNameException { - return Iterables.first( Iterables.filter( new Predicate<ObjectName>() - { - @Override - public boolean test( ObjectName item ) - { - return item.getKeyPropertyList().size() == 5; - } - - }, server.queryNames( new ObjectName( "Zest:application=" + applicationName + ",*,service=" + serviceId ), null ) ) ); + ObjectName objectName = new ObjectName( "Zest:application=" + applicationName + ",*,service=" + serviceId ); + return server.queryNames( objectName, null ).stream() + .filter( item -> item.getKeyPropertyList().size() == 5 ) + .findFirst().orElse( null ); } - } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/api/ContextResource.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/api/ContextResource.java b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/api/ContextResource.java index f062fdb..0c8e940 100644 --- a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/api/ContextResource.java +++ b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/api/ContextResource.java @@ -30,6 +30,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.stream.Stream; import org.apache.zest.api.association.ManyAssociation; import org.apache.zest.api.association.NamedAssociation; import org.apache.zest.api.common.Optional; @@ -42,8 +43,8 @@ import org.apache.zest.api.injection.scope.Service; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.injection.scope.Uses; import org.apache.zest.api.structure.Module; -import org.apache.zest.api.unitofwork.NoSuchEntityTypeException; import org.apache.zest.api.unitofwork.NoSuchEntityException; +import org.apache.zest.api.unitofwork.NoSuchEntityTypeException; import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.api.value.ValueBuilder; import org.apache.zest.api.value.ValueComposite; @@ -71,9 +72,6 @@ import org.restlet.resource.ResourceException; import org.slf4j.LoggerFactory; import static org.apache.zest.api.util.Annotations.isType; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.iterable; import static org.apache.zest.library.rest.server.api.ObjectSelection.current; /** @@ -901,7 +899,7 @@ public class ContextResource // Construct form out of individual parameters instead for( Annotation[] annotations : interactionMethod.getParameterAnnotations() ) { - Name name = (Name) first( filter( isType( Name.class ), iterable( annotations ) ) ); + Name name = (Name) Stream.of( annotations ).filter( isType( Name.class ) ).findFirst().orElse( null ); form.add( name.value(), getValue( name.value(), queryAsForm, entityAsForm ) ); } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/requestreader/DefaultRequestReader.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/requestreader/DefaultRequestReader.java b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/requestreader/DefaultRequestReader.java index 642d1c1..b96cc29 100644 --- a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/requestreader/DefaultRequestReader.java +++ b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/requestreader/DefaultRequestReader.java @@ -31,6 +31,7 @@ import java.time.ZonedDateTime; import java.util.Collections; import java.util.Map; import java.util.function.Function; +import java.util.stream.Stream; import org.apache.zest.api.association.AssociationDescriptor; import org.apache.zest.api.common.Optional; import org.apache.zest.api.constraint.Name; @@ -49,7 +50,6 @@ import org.apache.zest.api.value.ValueComposite; import org.apache.zest.api.value.ValueDeserializer; import org.apache.zest.api.value.ValueSerialization; import org.apache.zest.api.value.ValueSerializationException; -import org.apache.zest.functional.Iterables; import org.apache.zest.library.rest.server.spi.RequestReader; import org.restlet.Request; import org.restlet.Response; @@ -65,10 +65,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.apache.zest.api.util.Annotations.isType; -import static org.apache.zest.functional.Iterables.filter; -import static org.apache.zest.functional.Iterables.first; -import static org.apache.zest.functional.Iterables.iterable; -import static org.apache.zest.functional.Iterables.matchesAny; /** * Convert request into method arguments. @@ -338,7 +334,7 @@ public class DefaultRequestReader }, (Function<AssociationDescriptor, Iterable<EntityReference>>) associationDescriptor -> { // TODO - return Iterables.empty(); + return Collections.emptySet(); }, new Function<AssociationDescriptor, Map<String, EntityReference>>() { @@ -361,8 +357,8 @@ public class DefaultRequestReader int idx = 0; for( Annotation[] annotations : method.getParameterAnnotations() ) { - Name name = (Name) first( filter( isType( Name.class ), iterable( annotations ) ) ); - + Name name = (Name) Stream.of( annotations ).filter( isType( Name.class ) ) + .findFirst().orElse( null ); if( name == null ) { throw new IllegalStateException( "No @Name annotation found on parameter of method:" + method ); @@ -500,7 +496,7 @@ public class DefaultRequestReader + " of type " + parameterType.getName() ); } - if( arg == null && !matchesAny( isType( Optional.class ), iterable( annotations ) ) ) + if( arg == null && Stream.of( annotations ).noneMatch( isType( Optional.class ) ) ) { throw new IllegalArgumentException( "Parameter " + name.value() + " was not set" ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/fdf596b9/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/responsewriter/ResourceResponseWriter.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/responsewriter/ResourceResponseWriter.java b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/responsewriter/ResourceResponseWriter.java index cc20ee5..29f9a7e 100644 --- a/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/responsewriter/ResourceResponseWriter.java +++ b/libraries/rest-server/src/main/java/org/apache/zest/library/rest/server/restlet/responsewriter/ResourceResponseWriter.java @@ -29,7 +29,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.zest.api.injection.scope.Service; -import org.apache.zest.functional.Iterables; import org.apache.zest.library.rest.common.Resource; import org.apache.zest.library.rest.common.link.LinksUtil; import org.restlet.Response; @@ -60,11 +59,11 @@ public class ResourceResponseWriter extends AbstractResponseWriter // Allowed methods response.getAllowedMethods().add( Method.GET ); - if( Iterables.matchesAny( LinksUtil.withRel( "delete" ), resourceValue.commands().get() ) ) + if( resourceValue.commands().get().stream().anyMatch( LinksUtil.withRel( "delete" ) ) ) { response.getAllowedMethods().add( Method.DELETE ); } - if( Iterables.matchesAny( LinksUtil.withRel( "update" ), resourceValue.commands().get() ) ) + if( resourceValue.commands().get().stream().anyMatch( LinksUtil.withRel( "update" ) ) ) { response.getAllowedMethods().add( Method.PUT ); }
