Touche up and fixes. Removed a lot of Serializable, which has been a left-over from the days of a serializable model.
Signed-off-by: niclas <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/931c2eeb Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/931c2eeb Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/931c2eeb Branch: refs/heads/develop Commit: 931c2eebe85dde6476e88787f21bed05b31fda6d Parents: 07f65e0 Author: niclas <[email protected]> Authored: Sat May 13 16:45:40 2017 +0800 Committer: niclas <[email protected]> Committed: Sun May 14 12:07:56 2017 +0800 ---------------------------------------------------------------------- .../api/common/ConstructionException.java | 2 - .../api/common/InvalidApplicationException.java | 5 +- .../polygene/api/common/QualifiedName.java | 3 +- .../apache/polygene/api/common/TypeName.java | 3 +- .../api/composite/AmbiguousTypeException.java | 5 +- .../api/composite/CompositeInstance.java | 8 + .../InvalidValueCompositeException.java | 3 +- .../api/composite/NoSuchCompositeException.java | 5 +- .../polygene/api/constraint/Constraint.java | 2 - .../api/constraint/ConstraintViolation.java | 2 - .../ConstraintViolationException.java | 5 +- .../polygene/api/entity/EntityReference.java | 4 - .../polygene/api/entity/LifecycleException.java | 5 +- .../api/mixin/InitializationException.java | 5 +- .../api/query/NotQueryableException.java | 5 +- .../org/apache/polygene/api/query/Query.java | 4 +- .../polygene/api/query/QueryException.java | 5 +- .../api/query/QueryExpressionException.java | 3 - .../api/service/qualifier/ServiceTags.java | 3 - .../apache/polygene/api/usecase/Usecase.java | 4 +- .../polygene/runtime/PolygeneRuntimeImpl.java | 92 ++++------ .../association/AbstractAssociationModel.java | 13 +- .../bootstrap/CompositeAssemblyImpl.java | 184 ++++++++++--------- .../runtime/composite/FragmentClassLoader.java | 1 - .../runtime/composite/TransientInstance.java | 7 - .../polygene/runtime/entity/EntityInstance.java | 6 - .../runtime/property/PropertyInstance.java | 55 +++--- .../polygene/runtime/query/QueryImpl.java | 10 +- .../runtime/service/ServiceInstance.java | 7 - .../runtime/structure/ModuleInstance.java | 4 +- .../runtime/type/ValueTypeFactoryInstance.java | 8 +- .../runtime/unitofwork/ModuleUnitOfWork.java | 45 +++-- .../unitofwork/UnitOfWorkFactoryMixin.java | 3 +- .../value/ValueBuilderWithPrototype.java | 8 +- .../polygene/runtime/value/ValueInstance.java | 9 +- .../runtime/injection/ServiceInjectionTest.java | 24 +-- .../runtime/mixin/DefaultMethodsTest.java | 8 + .../preferences/PreferencesEntityStoreInfo.java | 2 - .../polygene/test/internal/DockerRule.java | 2 +- .../library/constraints/ContainsConstraint.java | 3 - .../constraints/GreaterThanConstraint.java | 3 - .../constraints/InstanceOfConstraint.java | 3 - .../library/constraints/LessThanConstraint.java | 3 - .../library/constraints/MatchesConstraint.java | 3 - .../constraints/MaxLengthConstraint.java | 5 - .../constraints/MinLengthConstraint.java | 5 - .../NotEmptyCollectionConstraint.java | 3 - .../library/constraints/OneOfConstraint.java | 3 - .../library/constraints/RangeConstraint.java | 3 - .../library/constraints/URIConstraint.java | 4 - .../library/constraints/URLConstraint.java | 4 - .../polygene/library/http/ConstraintInfo.java | 5 +- .../library/http/ContextListenerInfo.java | 2 - .../library/http/HelloWorldServlet.java | 2 - .../polygene/library/logging/debug/Debug.java | 7 +- .../library/logging/debug/DebugConcern.java | 7 +- .../logging/debug/records/DebugRecord.java | 3 +- .../debug/service/DebugOnConsoleSideEffect.java | 9 +- .../logging/debug/service/DebuggingService.java | 7 +- .../debug/service/DebuggingServiceMixin.java | 19 +- .../library/logging/log/CategoryLog.java | 19 +- .../library/logging/log/CategoryLogConcern.java | 19 +- .../library/logging/log/CategoryLogMixin.java | 20 +- .../polygene/library/logging/log/SimpleLog.java | 19 +- .../library/logging/log/SimpleLogConcern.java | 19 +- .../library/logging/log/StandardLog.java | 7 +- .../library/logging/log/StandardLogConcern.java | 7 +- .../library/logging/log/records/LogRecord.java | 3 +- .../logging/log/service/LoggingService.java | 3 +- .../log/service/LoggingServiceMixin.java | 19 +- .../library/restlet/PolygeneServerServlet.java | 3 - 71 files changed, 342 insertions(+), 468 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/common/ConstructionException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/common/ConstructionException.java b/core/api/src/main/java/org/apache/polygene/api/common/ConstructionException.java index 04a1b3a..9697284 100644 --- a/core/api/src/main/java/org/apache/polygene/api/common/ConstructionException.java +++ b/core/api/src/main/java/org/apache/polygene/api/common/ConstructionException.java @@ -37,8 +37,6 @@ package org.apache.polygene.api.common; public class ConstructionException extends RuntimeException { - private static final long serialVersionUID = 1L; - public ConstructionException() { } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/common/InvalidApplicationException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/common/InvalidApplicationException.java b/core/api/src/main/java/org/apache/polygene/api/common/InvalidApplicationException.java index fccd4bb..80df92a 100644 --- a/core/api/src/main/java/org/apache/polygene/api/common/InvalidApplicationException.java +++ b/core/api/src/main/java/org/apache/polygene/api/common/InvalidApplicationException.java @@ -25,11 +25,8 @@ package org.apache.polygene.api.common; * This happens primarily when client code tries to instantiate Composites * and objects which have not been registered in the ModuleAssembly. */ -public class InvalidApplicationException - extends RuntimeException +public class InvalidApplicationException extends RuntimeException { - private static final long serialVersionUID = 1L; - public InvalidApplicationException( String string ) { super( string ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/common/QualifiedName.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/common/QualifiedName.java b/core/api/src/main/java/org/apache/polygene/api/common/QualifiedName.java index 79d4578..36bf86a 100644 --- a/core/api/src/main/java/org/apache/polygene/api/common/QualifiedName.java +++ b/core/api/src/main/java/org/apache/polygene/api/common/QualifiedName.java @@ -20,7 +20,6 @@ package org.apache.polygene.api.common; -import java.io.Serializable; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Member; import java.util.Objects; @@ -52,7 +51,7 @@ import java.util.Objects; * object and can safely be used as keys in {@link java.util.Map}. */ public final class QualifiedName - implements Comparable<QualifiedName>, Serializable + implements Comparable<QualifiedName> { private final TypeName typeName; private final String name; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/common/TypeName.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/common/TypeName.java b/core/api/src/main/java/org/apache/polygene/api/common/TypeName.java index a178929..65b935e 100644 --- a/core/api/src/main/java/org/apache/polygene/api/common/TypeName.java +++ b/core/api/src/main/java/org/apache/polygene/api/common/TypeName.java @@ -19,7 +19,6 @@ */ package org.apache.polygene.api.common; -import java.io.Serializable; import java.lang.reflect.Type; import java.util.Objects; import org.apache.polygene.api.util.Classes; @@ -28,7 +27,7 @@ import org.apache.polygene.api.util.Classes; * Represents a Type name. */ public final class TypeName - implements Serializable, Comparable<TypeName> + implements Comparable<TypeName> { private final String name; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/composite/AmbiguousTypeException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/composite/AmbiguousTypeException.java b/core/api/src/main/java/org/apache/polygene/api/composite/AmbiguousTypeException.java index 8c96697..e84bf44 100644 --- a/core/api/src/main/java/org/apache/polygene/api/composite/AmbiguousTypeException.java +++ b/core/api/src/main/java/org/apache/polygene/api/composite/AmbiguousTypeException.java @@ -47,11 +47,8 @@ package org.apache.polygene.api.composite; * one is intended. * </p> */ -public class AmbiguousTypeException - extends RuntimeException +public class AmbiguousTypeException extends RuntimeException { - private static final long serialVersionUID = 1L; - public AmbiguousTypeException( String message ) { super( message ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/composite/CompositeInstance.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/composite/CompositeInstance.java b/core/api/src/main/java/org/apache/polygene/api/composite/CompositeInstance.java index 03e6dc8..52e8759 100644 --- a/core/api/src/main/java/org/apache/polygene/api/composite/CompositeInstance.java +++ b/core/api/src/main/java/org/apache/polygene/api/composite/CompositeInstance.java @@ -21,6 +21,7 @@ package org.apache.polygene.api.composite; import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Proxy; import org.apache.polygene.api.property.StateHolder; import org.apache.polygene.api.structure.MetaInfoHolder; import org.apache.polygene.api.structure.ModuleDescriptor; @@ -42,4 +43,11 @@ public interface CompositeInstance CompositeDescriptor descriptor(); StateHolder state(); + + static CompositeInstance compositeInstanceOf( Composite composite ) + { + InvocationHandler handler = Proxy.getInvocationHandler( composite ); + return (CompositeInstance) handler; + } + } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/composite/InvalidValueCompositeException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/composite/InvalidValueCompositeException.java b/core/api/src/main/java/org/apache/polygene/api/composite/InvalidValueCompositeException.java index c857a6e..8c03fb4 100644 --- a/core/api/src/main/java/org/apache/polygene/api/composite/InvalidValueCompositeException.java +++ b/core/api/src/main/java/org/apache/polygene/api/composite/InvalidValueCompositeException.java @@ -22,8 +22,7 @@ package org.apache.polygene.api.composite; /** * This exception is thrown if a ValueComposite is invalid. */ -public class InvalidValueCompositeException - extends RuntimeException +public class InvalidValueCompositeException extends RuntimeException { public InvalidValueCompositeException( String message ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/composite/NoSuchCompositeException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/composite/NoSuchCompositeException.java b/core/api/src/main/java/org/apache/polygene/api/composite/NoSuchCompositeException.java index e03eafc..c3f51bb 100644 --- a/core/api/src/main/java/org/apache/polygene/api/composite/NoSuchCompositeException.java +++ b/core/api/src/main/java/org/apache/polygene/api/composite/NoSuchCompositeException.java @@ -24,11 +24,8 @@ import org.apache.polygene.api.common.InvalidApplicationException; /** * This exception is thrown if client code tries to create a non-existing Composite type. */ -public class NoSuchCompositeException - extends InvalidApplicationException +public class NoSuchCompositeException extends InvalidApplicationException { - private static final long serialVersionUID = 1L; - private final String compositeType; private final String moduleName; private final String visibleTypes; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/constraint/Constraint.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/constraint/Constraint.java b/core/api/src/main/java/org/apache/polygene/api/constraint/Constraint.java index 603b7e5..17df997 100644 --- a/core/api/src/main/java/org/apache/polygene/api/constraint/Constraint.java +++ b/core/api/src/main/java/org/apache/polygene/api/constraint/Constraint.java @@ -20,7 +20,6 @@ package org.apache.polygene.api.constraint; -import java.io.Serializable; import java.lang.annotation.Annotation; /** @@ -28,7 +27,6 @@ import java.lang.annotation.Annotation; * value validation. */ public interface Constraint<ANNOTATION extends Annotation, TYPE> - extends Serializable { /** * For each value or parameter which should be checked this method will be invoked. http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolation.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolation.java b/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolation.java index 1236bbf..75bbecb 100644 --- a/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolation.java +++ b/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolation.java @@ -20,7 +20,6 @@ package org.apache.polygene.api.constraint; -import java.io.Serializable; import java.lang.annotation.Annotation; /** @@ -28,7 +27,6 @@ import java.lang.annotation.Annotation; * is put in a collection of all violations that have occurred for this value check. */ public final class ConstraintViolation - implements Serializable { private String name; private final Annotation constraint; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolationException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolationException.java b/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolationException.java index 8f11602..a007a11 100644 --- a/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolationException.java +++ b/core/api/src/main/java/org/apache/polygene/api/constraint/ConstraintViolationException.java @@ -46,11 +46,8 @@ import static java.util.stream.Collectors.joining; * was invoked. The Exception also has support for localized messages of these violations. * </p> */ -public class ConstraintViolationException - extends IllegalArgumentException +public class ConstraintViolationException extends IllegalArgumentException { - private static final long serialVersionUID = 1L; - private final Collection<ConstraintViolation> constraintViolations; private String methodName; private String mixinTypeName; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java b/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java index 1f28a0e..98d1003 100644 --- a/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java +++ b/core/api/src/main/java/org/apache/polygene/api/entity/EntityReference.java @@ -20,7 +20,6 @@ package org.apache.polygene.api.entity; -import java.io.Serializable; import java.util.Objects; import org.apache.polygene.api.identity.Identity; import org.apache.polygene.api.identity.StringIdentity; @@ -31,7 +30,6 @@ import org.apache.polygene.api.identity.StringIdentity; * <pre>123456-abcde</pre> */ public final class EntityReference - implements Serializable { /** * Parse an Entity reference string to an EntityReference. @@ -62,8 +60,6 @@ public final class EntityReference return new EntityReference(identity); } - private static final long serialVersionUID = 1L; - private Identity identity; /** http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/entity/LifecycleException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/entity/LifecycleException.java b/core/api/src/main/java/org/apache/polygene/api/entity/LifecycleException.java index e0b2580..2878538 100644 --- a/core/api/src/main/java/org/apache/polygene/api/entity/LifecycleException.java +++ b/core/api/src/main/java/org/apache/polygene/api/entity/LifecycleException.java @@ -23,11 +23,8 @@ package org.apache.polygene.api.entity; /** * Thrown if Lifecycle invocation fails */ -public class LifecycleException - extends RuntimeException +public class LifecycleException extends RuntimeException { - private static final long serialVersionUID = 1L; - public LifecycleException() { } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/mixin/InitializationException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/mixin/InitializationException.java b/core/api/src/main/java/org/apache/polygene/api/mixin/InitializationException.java index 11159b1..254a2b7 100644 --- a/core/api/src/main/java/org/apache/polygene/api/mixin/InitializationException.java +++ b/core/api/src/main/java/org/apache/polygene/api/mixin/InitializationException.java @@ -22,11 +22,8 @@ package org.apache.polygene.api.mixin; /** * Thrown when a Fragment or object could not be initialized. */ -public class InitializationException - extends RuntimeException +public class InitializationException extends RuntimeException { - private static final long serialVersionUID = 1L; - public InitializationException() { } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/query/NotQueryableException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/query/NotQueryableException.java b/core/api/src/main/java/org/apache/polygene/api/query/NotQueryableException.java index 75dd611..fc6c2a4 100644 --- a/core/api/src/main/java/org/apache/polygene/api/query/NotQueryableException.java +++ b/core/api/src/main/java/org/apache/polygene/api/query/NotQueryableException.java @@ -29,11 +29,8 @@ import org.apache.polygene.api.util.Classes; * Thrown in case that a non queryable type or accessor (marked with @Queriable(false)) is used during query building, * or when non-Property, non-Associations are trying to be queried (possibly can not happen). */ -public class NotQueryableException - extends QueryException +public class NotQueryableException extends QueryException { - private static final long serialVersionUID = 1L; - /** * Constructor. * http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/query/Query.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/query/Query.java b/core/api/src/main/java/org/apache/polygene/api/query/Query.java index 8ab52f1..2c43da7 100644 --- a/core/api/src/main/java/org/apache/polygene/api/query/Query.java +++ b/core/api/src/main/java/org/apache/polygene/api/query/Query.java @@ -19,7 +19,6 @@ */ package org.apache.polygene.api.query; -import java.io.Serializable; import java.util.stream.Stream; import org.apache.polygene.api.property.Property; import org.apache.polygene.api.query.grammar.OrderBy; @@ -39,8 +38,7 @@ import org.apache.polygene.api.query.grammar.OrderBy; * * @param <T> Entity type */ -public interface Query<T> - extends Iterable<T>, Serializable +public interface Query<T> extends Iterable<T> { /** * Set the ordering rules. If many segments are used for ordering http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/query/QueryException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/query/QueryException.java b/core/api/src/main/java/org/apache/polygene/api/query/QueryException.java index 6a52120..f4cd2a6 100644 --- a/core/api/src/main/java/org/apache/polygene/api/query/QueryException.java +++ b/core/api/src/main/java/org/apache/polygene/api/query/QueryException.java @@ -22,11 +22,8 @@ package org.apache.polygene.api.query; /** * Base class for Query exceptions. */ -public abstract class QueryException - extends RuntimeException +public abstract class QueryException extends RuntimeException { - private static final long serialVersionUID = -3602596752342902060L; - public QueryException() { } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/query/QueryExpressionException.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/query/QueryExpressionException.java b/core/api/src/main/java/org/apache/polygene/api/query/QueryExpressionException.java index ed665ee..7b7731f 100644 --- a/core/api/src/main/java/org/apache/polygene/api/query/QueryExpressionException.java +++ b/core/api/src/main/java/org/apache/polygene/api/query/QueryExpressionException.java @@ -25,9 +25,6 @@ package org.apache.polygene.api.query; public class QueryExpressionException extends QueryException { - - private static final long serialVersionUID = 1L; - public QueryExpressionException( String message ) { super( message ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/service/qualifier/ServiceTags.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/service/qualifier/ServiceTags.java b/core/api/src/main/java/org/apache/polygene/api/service/qualifier/ServiceTags.java index c616a9f..a0055bf 100644 --- a/core/api/src/main/java/org/apache/polygene/api/service/qualifier/ServiceTags.java +++ b/core/api/src/main/java/org/apache/polygene/api/service/qualifier/ServiceTags.java @@ -20,8 +20,6 @@ package org.apache.polygene.api.service.qualifier; -import java.io.Serializable; - /** * Use this as metainfo about a Service to specify tags. Easiest way to set them on a service * is to use the <code>ServiceDeclaration.taggedWith(String...)</code> method. @@ -30,7 +28,6 @@ import java.io.Serializable; * Selector. */ public final class ServiceTags - implements Serializable { private String[] tags; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/api/src/main/java/org/apache/polygene/api/usecase/Usecase.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/polygene/api/usecase/Usecase.java b/core/api/src/main/java/org/apache/polygene/api/usecase/Usecase.java index c47ce27..d730394 100644 --- a/core/api/src/main/java/org/apache/polygene/api/usecase/Usecase.java +++ b/core/api/src/main/java/org/apache/polygene/api/usecase/Usecase.java @@ -20,7 +20,6 @@ package org.apache.polygene.api.usecase; -import java.io.Serializable; import org.apache.polygene.api.common.MetaInfo; import org.apache.polygene.api.structure.MetaInfoHolder; @@ -29,11 +28,10 @@ import org.apache.polygene.api.structure.MetaInfoHolder; * implementations decide what to do in certain circumstances. */ public final class Usecase - implements Serializable, MetaInfoHolder + implements MetaInfoHolder { public static final Usecase DEFAULT = new Usecase( "Default", new MetaInfo() ); - private static final long serialVersionUID = 1L; private final String name; private final MetaInfo metaInfo; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/PolygeneRuntimeImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/PolygeneRuntimeImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/PolygeneRuntimeImpl.java index 372fb18..37a602c 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/PolygeneRuntimeImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/PolygeneRuntimeImpl.java @@ -64,7 +64,6 @@ import org.apache.polygene.runtime.composite.TransientInstance; import org.apache.polygene.runtime.entity.EntityInstance; import org.apache.polygene.runtime.property.PropertyInstance; import org.apache.polygene.runtime.service.ImportedServiceReferenceInstance; -import org.apache.polygene.runtime.service.ServiceInstance; import org.apache.polygene.runtime.service.ServiceReferenceInstance; import org.apache.polygene.runtime.unitofwork.ModuleUnitOfWork; import org.apache.polygene.runtime.value.ValueInstance; @@ -72,7 +71,7 @@ import org.apache.polygene.spi.PolygeneSPI; import org.apache.polygene.spi.entity.EntityState; import static java.lang.reflect.Proxy.getInvocationHandler; -import static org.apache.polygene.runtime.composite.TransientInstance.compositeInstanceOf; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; /** * Incarnation of Polygene. @@ -134,31 +133,20 @@ public final class PolygeneRuntimeImpl @Override public ModuleDescriptor moduleOf( Object compositeOrServiceReferenceOrUow ) { - if( compositeOrServiceReferenceOrUow instanceof TransientComposite ) + if( compositeOrServiceReferenceOrUow instanceof Composite ) { - TransientComposite composite = (TransientComposite) compositeOrServiceReferenceOrUow; - return TransientInstance.compositeInstanceOf( composite ).module(); - } - else if( compositeOrServiceReferenceOrUow instanceof EntityComposite ) - { - EntityComposite composite = (EntityComposite) compositeOrServiceReferenceOrUow; - return EntityInstance.entityInstanceOf( composite ).module(); - } - else if( compositeOrServiceReferenceOrUow instanceof ValueComposite ) - { - ValueComposite composite = (ValueComposite) compositeOrServiceReferenceOrUow; - return ValueInstance.valueInstanceOf( composite ).module(); - } - else if( compositeOrServiceReferenceOrUow instanceof ServiceComposite ) - { - ServiceComposite composite = (ServiceComposite) compositeOrServiceReferenceOrUow; - InvocationHandler handler = getInvocationHandler( composite ); - if( handler instanceof ServiceInstance ) - { - return ( (ServiceInstance) handler ).module(); - } - return ( (ServiceReferenceInstance.ServiceInvocationHandler) handler ).module(); + return compositeInstanceOf( (Composite) compositeOrServiceReferenceOrUow ).module(); } +// else if( compositeOrServiceReferenceOrUow instanceof ServiceComposite ) +// { +// ServiceComposite composite = (ServiceComposite) compositeOrServiceReferenceOrUow; +// InvocationHandler handler = getInvocationHandler( composite ); +// if( handler instanceof ServiceInstance ) +// { +// return ( (ServiceInstance) handler ).module(); +// } +// return ( (ServiceReferenceInstance.ServiceInvocationHandler) handler ).module(); +// } else if( compositeOrServiceReferenceOrUow instanceof UnitOfWork ) { ModuleUnitOfWork unitOfWork = (ModuleUnitOfWork) compositeOrServiceReferenceOrUow; @@ -184,31 +172,20 @@ public final class PolygeneRuntimeImpl @Override public ModelDescriptor modelDescriptorFor( Object compositeOrServiceReference ) { - if( compositeOrServiceReference instanceof TransientComposite ) - { - TransientComposite composite = (TransientComposite) compositeOrServiceReference; - return TransientInstance.compositeInstanceOf( composite ).descriptor(); - } - else if( compositeOrServiceReference instanceof EntityComposite ) - { - EntityComposite composite = (EntityComposite) compositeOrServiceReference; - return EntityInstance.entityInstanceOf( composite ).descriptor(); - } - else if( compositeOrServiceReference instanceof ValueComposite ) + if( compositeOrServiceReference instanceof Composite ) { - ValueComposite composite = (ValueComposite) compositeOrServiceReference; - return ValueInstance.valueInstanceOf( composite ).descriptor(); - } - else if( compositeOrServiceReference instanceof ServiceComposite ) - { - ServiceComposite composite = (ServiceComposite) compositeOrServiceReference; - InvocationHandler handler = getInvocationHandler( composite ); - if( handler instanceof ServiceInstance ) - { - return ( (ServiceInstance) handler ).descriptor(); - } - return ( (ServiceReferenceInstance.ServiceInvocationHandler) handler ).descriptor(); + return compositeInstanceOf( (Composite) compositeOrServiceReference ).descriptor(); } +// else if( compositeOrServiceReference instanceof ServiceComposite ) +// { +// ServiceComposite composite = (ServiceComposite) compositeOrServiceReference; +// InvocationHandler handler = getInvocationHandler( composite ); +// if( handler instanceof ServiceInstance ) +// { +// return ( (ServiceInstance) handler ).descriptor(); +// } +// return ( (ServiceReferenceInstance.ServiceInvocationHandler) handler ).descriptor(); +// } else if( compositeOrServiceReference instanceof ServiceReferenceInstance ) { ServiceReferenceInstance<?> reference = (ServiceReferenceInstance<?>) compositeOrServiceReference; @@ -221,8 +198,9 @@ public final class PolygeneRuntimeImpl return importedServiceReference.serviceDescriptor(); } throw new IllegalArgumentException( "Wrong type. Must be one of " - + Arrays.asList( TransientComposite.class, ValueComposite.class, - ServiceComposite.class, ServiceReference.class ) ); + + Arrays.asList( TransientComposite.class, ValueComposite.class, EntityComposite.class, + ServiceComposite.class, ServiceReference.class, + ImportedServiceReferenceInstance.class ) ); } @Override @@ -238,7 +216,7 @@ public final class PolygeneRuntimeImpl { if( transsient instanceof TransientComposite ) { - TransientInstance transientInstance = compositeInstanceOf( (Composite) transsient ); + TransientInstance transientInstance = (TransientInstance) compositeInstanceOf( (Composite) transsient ); return (TransientDescriptor) transientInstance.descriptor(); } throw new IllegalArgumentException( "Wrong type. Must be subtype of " + TransientComposite.class ); @@ -247,7 +225,7 @@ public final class PolygeneRuntimeImpl @Override public StateHolder stateOf( TransientComposite composite ) { - return TransientInstance.compositeInstanceOf( composite ).state(); + return compositeInstanceOf( composite ).state(); } @Override @@ -264,7 +242,7 @@ public final class PolygeneRuntimeImpl @Override public AssociationStateHolder stateOf( EntityComposite composite ) { - return EntityInstance.entityInstanceOf( composite ).state(); + return ( (EntityInstance) compositeInstanceOf( composite ) ).state(); } @Override @@ -272,7 +250,7 @@ public final class PolygeneRuntimeImpl { if( value instanceof ValueComposite ) { - ValueInstance valueInstance = ValueInstance.valueInstanceOf( (ValueComposite) value ); + ValueInstance valueInstance = (ValueInstance) compositeInstanceOf( (Composite) value ); return valueInstance.descriptor(); } throw new IllegalArgumentException( "Wrong type. {" + value + "} must be subtype of " + ValueComposite.class ); @@ -281,7 +259,7 @@ public final class PolygeneRuntimeImpl @Override public AssociationStateHolder stateOf( ValueComposite composite ) { - return ValueInstance.valueInstanceOf( composite ).state(); + return ( (ValueInstance) compositeInstanceOf( composite ) ).state(); } @Override @@ -295,7 +273,7 @@ public final class PolygeneRuntimeImpl if( service instanceof ServiceComposite ) { ServiceComposite composite = (ServiceComposite) service; - return (ServiceDescriptor) ServiceInstance.serviceInstanceOf( composite ).descriptor(); + return (ServiceDescriptor) compositeInstanceOf( composite ).descriptor(); } throw new IllegalArgumentException( "Wrong type. Must be subtype of " + ServiceComposite.class + " or " + ServiceReference.class ); @@ -337,7 +315,7 @@ public final class PolygeneRuntimeImpl @Override public EntityState entityStateOf( EntityComposite composite ) { - return EntityInstance.entityInstanceOf( composite ).entityState(); + return ( (EntityInstance) compositeInstanceOf( composite ) ).entityState(); } @Override http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/association/AbstractAssociationModel.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/association/AbstractAssociationModel.java b/core/runtime/src/main/java/org/apache/polygene/runtime/association/AbstractAssociationModel.java index 974a978..c8100ed 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/association/AbstractAssociationModel.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/association/AbstractAssociationModel.java @@ -6,6 +6,7 @@ import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; +import java.util.Objects; import org.apache.polygene.api.association.AbstractAssociation; import org.apache.polygene.api.association.AssociationDescriptor; import org.apache.polygene.api.association.GenericAssociationInfo; @@ -42,6 +43,8 @@ public class AbstractAssociationModel<AT> ValueConstraintsInstance associationConstraintsInstance, MetaInfo metaInfo ) { + Objects.requireNonNull( accessor ); + Objects.requireNonNull( metaInfo ); this.metaInfo = metaInfo; this.constraints = valueConstraintsInstance; this.associationConstraints = associationConstraintsInstance; @@ -101,13 +104,19 @@ public class AbstractAssociationModel<AT> public void checkConstraints( Object value ) throws ConstraintViolationException { - constraints.checkConstraints( value, accessor ); + if( constraints != null ) + { + constraints.checkConstraints( value, accessor ); + } } public void checkAssociationConstraints( AbstractAssociation association ) throws ConstraintViolationException { - associationConstraints.checkConstraints( association, accessor ); + if( associationConstraints != null ) + { + associationConstraints.checkConstraints( association, accessor ); + } } public AssociationInfo builderInfo() http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java index 4e173e4..08fd345 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/bootstrap/CompositeAssemblyImpl.java @@ -211,101 +211,111 @@ public abstract class CompositeAssemblyImpl { List<Throwable> exceptions = new ArrayList<>(); Set<Class<?>> thisDependencies = new HashSet<>(); - types.forEach( mixinType -> - { - - for( Method method : mixinType.getMethods() ) - { - try - { - if( !compositeMethodsModel.isImplemented( method ) - && !Proxy.class.equals( method.getDeclaringClass().getSuperclass() ) - && !Proxy.class.equals( method.getDeclaringClass() ) - && !Modifier.isStatic( method.getModifiers() ) ) - { - MixinModel mixinModel = implementMethod( method, mixinClasses ); - if( mixinModel != null ) - { - ConcernsModel concernsModel = concernsFor( - method, - mixinModel.mixinClass(), - concat( concernDeclarations( mixinModel.mixinClass() ), - concernClasses.stream() ) - ); - SideEffectsModel sideEffectsModel = sideEffectsFor( - method, - mixinModel.mixinClass(), - concat( sideEffectDeclarations( mixinModel.mixinClass() ), - sideEffectClasses.stream() ) - ); - ConstraintsModel constraints = constraintsFor( - method, - toList( concat( constraintDeclarations( mixinModel.mixinClass() ), - constraintClasses.stream() ) ) - ); - CompositeMethodModel methodComposite = new CompositeMethodModel( - method, - constraints, - concernsModel, - sideEffectsModel, - mixinsModel - ); - - Stream<? extends Dependencies> source = Stream.of( methodComposite, mixinModel ); - source.flatMap( Dependencies::dependencies ) - .filter( new DependencyModel.ScopeSpecification( This.class ) ) - .map( DependencyModel::rawInjectionType ) - .forEach( thisDependencies::add ); - - interfacesOf( mixinModel.mixinClass() ) - .map( Classes.RAW_CLASS ) - .filter( clazz -> Stream.of( Initializable.class, Lifecycle.class, InvocationHandler.class ) - .noneMatch( c -> c.equals( clazz ) ) ) - .forEach( thisDependencies::add ); - - compositeMethodsModel.addMethod( methodComposite ); - } - } - } - catch( Exception e ) - { - exceptions.add( e ); - } - } - // Add type to set of mixin types - mixinsModel.addMixinType( mixinType ); - } ); + types.stream() + .peek( mixinType -> mixinsModel.addMixinType( mixinType ) ) + .flatMap( mixinType -> Arrays.stream( mixinType.getMethods() ) ) + .forEach( method -> implementMixinMethod( method, mixinClasses, constraintClasses, + concernClasses, + sideEffectClasses, + exceptions, + thisDependencies + ) + ); // Implement all @This dependencies that were found - thisDependencies.forEach( thisDependency -> - { - // Add additional declarations from the @This type - Stream<Class<?>> typeConstraintClasses = concat( - constraintClasses.stream(), - constraintDeclarations( thisDependency ) ); - Stream<Class<?>> typeConcernClasses = concat( - concernClasses.stream(), - concernDeclarations( thisDependency ) ); - Stream<Class<?>> typeSideEffectClasses = concat( - sideEffectClasses.stream(), - sideEffectDeclarations( thisDependency ) ); - Stream<Class<?>> typeMixinClasses = concat( - mixinClasses.stream(), - mixinDeclarations( thisDependency ) ); - List<? extends Class<?>> singleton = Collections.singletonList( thisDependency ); - implementMixinType( singleton, - toList( typeConstraintClasses ), - toList( typeConcernClasses ), - toList( typeSideEffectClasses ), - toList( typeMixinClasses ) - ); - } ); + thisDependencies.forEach( + thisDependency -> + { + // Add additional declarations from the @This type + Stream<Class<?>> typeConstraintClasses = concat( + constraintClasses.stream(), + constraintDeclarations( thisDependency ) ); + Stream<Class<?>> typeConcernClasses = concat( + concernClasses.stream(), + concernDeclarations( thisDependency ) ); + Stream<Class<?>> typeSideEffectClasses = concat( + sideEffectClasses.stream(), + sideEffectDeclarations( thisDependency ) ); + Stream<Class<?>> typeMixinClasses = concat( + mixinClasses.stream(), + mixinDeclarations( thisDependency ) ); + List<? extends Class<?>> singleton = Collections.singletonList( thisDependency ); + implementMixinType( singleton, + toList( typeConstraintClasses ), + toList( typeConcernClasses ), + toList( typeSideEffectClasses ), + toList( typeMixinClasses ) + ); + } ); if( exceptions.size() > 0 ) { throw new AssemblyReportException( exceptions ); } } + private void implementMixinMethod( Method method, + List<Class<?>> mixinClasses, + List<Class<?>> constraintClasses, + List<Class<?>> concernClasses, + List<Class<?>> sideEffectClasses, + List<Throwable> exceptions, + Set<Class<?>> thisDependencies ) + { + try + { + if( !compositeMethodsModel.isImplemented( method ) + && !Proxy.class.equals( method.getDeclaringClass().getSuperclass() ) + && !Proxy.class.equals( method.getDeclaringClass() ) + && !Modifier.isStatic( method.getModifiers() ) ) + { + MixinModel mixinModel = implementMethod( method, mixinClasses ); + if( mixinModel != null ) + { + ConcernsModel concernsModel = concernsFor( + method, + mixinModel.mixinClass(), + concat( concernDeclarations( mixinModel.mixinClass() ), + concernClasses.stream() ) + ); + SideEffectsModel sideEffectsModel = sideEffectsFor( + method, + mixinModel.mixinClass(), + concat( sideEffectDeclarations( mixinModel.mixinClass() ), + sideEffectClasses.stream() ) + ); + Stream<Class<?>> concat = concat( constraintDeclarations( mixinModel.mixinClass() ), + constraintClasses.stream() ); + ConstraintsModel constraints = constraintsFor( method, toList( concat ) ); + CompositeMethodModel methodComposite = new CompositeMethodModel( + method, + constraints, + concernsModel, + sideEffectsModel, + mixinsModel + ); + + Stream<? extends Dependencies> source = Stream.of( methodComposite, mixinModel ); + source.flatMap( Dependencies::dependencies ) + .filter( new DependencyModel.ScopeSpecification( This.class ) ) + .map( DependencyModel::rawInjectionType ) + .forEach( thisDependencies::add ); + + interfacesOf( mixinModel.mixinClass() ) + .map( Classes.RAW_CLASS ) + .filter( clazz -> Stream.of( Initializable.class, Lifecycle.class, InvocationHandler.class ) + .noneMatch( c -> c.equals( clazz ) ) ) + .forEach( thisDependencies::add ); + + compositeMethodsModel.addMethod( methodComposite ); + } + } + } + catch( Exception e ) + { + exceptions.add( e ); + } + } + @SuppressWarnings( "raw" ) protected MixinModel implementMethod( Method method, List<Class<?>> mixinDeclarations ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java index 5f56595..8849411 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/FragmentClassLoader.java @@ -146,7 +146,6 @@ public class FragmentClassLoader { name = "polygene." + name; } - byte[] b = generateClass( name, baseClass ); return defineClass( name, b, 0, b.length, baseClass.getProtectionDomain() ); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientInstance.java index edc1a8b..89cb287 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientInstance.java @@ -20,7 +20,6 @@ package org.apache.polygene.runtime.composite; -import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; @@ -38,12 +37,6 @@ import org.apache.polygene.api.structure.ModuleDescriptor; public class TransientInstance implements CompositeInstance, MixinsInstance { - public static TransientInstance compositeInstanceOf( Composite composite ) - { - InvocationHandler handler = Proxy.getInvocationHandler( composite ); - return (TransientInstance) handler; - } - private final Composite proxy; protected final Object[] mixins; protected StateHolder state; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntityInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntityInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntityInstance.java index b143086..6893225 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntityInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntityInstance.java @@ -20,7 +20,6 @@ package org.apache.polygene.runtime.entity; import java.lang.reflect.Method; -import java.lang.reflect.Proxy; import java.lang.reflect.Type; import java.util.List; import java.util.Objects; @@ -51,11 +50,6 @@ import static java.util.stream.Collectors.toList; public final class EntityInstance implements CompositeInstance, MixinsInstance { - public static EntityInstance entityInstanceOf( EntityComposite composite ) - { - return (EntityInstance) Proxy.getInvocationHandler( composite ); - } - private final EntityComposite proxy; private final UnitOfWork uow; private final EntityModel entityModel; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/property/PropertyInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/property/PropertyInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/property/PropertyInstance.java index 41d5e3c..4ea4ea3 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/property/PropertyInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/property/PropertyInstance.java @@ -28,15 +28,17 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.polygene.api.composite.Composite; import org.apache.polygene.api.property.Property; import org.apache.polygene.api.property.PropertyDescriptor; import org.apache.polygene.api.property.PropertyWrapper; import org.apache.polygene.api.type.CollectionType; import org.apache.polygene.api.type.MapType; import org.apache.polygene.api.type.ValueCompositeType; -import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.runtime.value.ValueInstance; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; + /** * {@code PropertyInstance} represents a property. */ @@ -226,7 +228,7 @@ public class PropertyInstance<T> Object value = get(); if( value != null ) { - ValueInstance.valueInstanceOf( (ValueComposite) value ).prepareToBuild(); + prepareToBuild( value ); } } else if( propertyDescriptor.valueType() instanceof CollectionType ) @@ -249,10 +251,7 @@ public class PropertyInstance<T> if( collection.collectedType() instanceof ValueCompositeType ) { Collection coll = (Collection) value; - for( Object instance : coll ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareToBuild(); - } + coll.forEach( this::prepareToBuild ); } set( (T) value ); @@ -270,24 +269,22 @@ public class PropertyInstance<T> MapType mapType = (MapType) propertyDescriptor.valueType(); if( mapType.keyType() instanceof ValueCompositeType ) { - for( Object instance : map.keySet() ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareToBuild(); - } + map.keySet().forEach( this::prepareToBuild ); } if( mapType.valueType() instanceof ValueCompositeType ) { - for( Object instance : map.values() ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareToBuild(); - } + map.values().forEach( this::prepareToBuild ); } - set( (T) value ); } } } + private void prepareToBuild( Object instance ) + { + ( (ValueInstance) compositeInstanceOf( (Composite) instance ) ).prepareToBuild(); + } + @SuppressWarnings( {"raw", "unchecked"} ) public void prepareBuilderState( PropertyModel propertyDescriptor ) { @@ -297,7 +294,7 @@ public class PropertyInstance<T> Object value = get(); if( value != null ) { - ValueInstance.valueInstanceOf( (ValueComposite) value ).prepareBuilderState(); + prepareBuilderState( value ); } } else if( propertyDescriptor.valueType() instanceof CollectionType ) @@ -309,15 +306,15 @@ public class PropertyInstance<T> { if( value instanceof List ) { - value = (T) Collections.unmodifiableList( (List<? extends Object>) value ); + value = (T) Collections.unmodifiableList( (List<?>) value ); } else if( value instanceof Set ) { - value = (T) Collections.unmodifiableSet( (Set<? extends Object>) value ); + value = (T) Collections.unmodifiableSet( (Set<?>) value ); } else { - value = (T) Collections.unmodifiableCollection( (Collection<? extends Object>) value ); + value = (T) Collections.unmodifiableCollection( (Collection<?>) value ); } this.value = value; @@ -327,10 +324,7 @@ public class PropertyInstance<T> if( collection.collectedType() instanceof ValueCompositeType ) { Collection coll = (Collection) value; - for( Object instance : coll ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareBuilderState(); - } + coll.forEach( this::prepareBuilderState ); } } } @@ -344,18 +338,12 @@ public class PropertyInstance<T> if( mapType.keyType() instanceof ValueCompositeType ) { Map map = (Map) value; - for( Object instance : map.keySet() ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareBuilderState(); - } + map.keySet().forEach( this::prepareBuilderState ); } if( mapType.valueType() instanceof ValueCompositeType ) { Map map = (Map) value; - for( Object instance : map.values() ) - { - ValueInstance.valueInstanceOf( (ValueComposite) instance ).prepareBuilderState(); - } + map.values().forEach( this::prepareBuilderState ); } if( propertyDescriptor.isImmutable() ) { @@ -368,4 +356,9 @@ public class PropertyInstance<T> model = propertyDescriptor; } + + private void prepareBuilderState( Object value ) + { + ( (ValueInstance) compositeInstanceOf( (Composite) value ) ).prepareBuilderState(); + } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/query/QueryImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/query/QueryImpl.java b/core/runtime/src/main/java/org/apache/polygene/runtime/query/QueryImpl.java index d4d768c..cdbe633 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/query/QueryImpl.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/query/QueryImpl.java @@ -38,11 +38,9 @@ import org.apache.polygene.spi.query.QuerySource; /** * Default implementation of {@link org.apache.polygene.api.query.Query}. */ -/* package */ class QueryImpl<T> +class QueryImpl<T> implements Query<T> { - private static final long serialVersionUID = 1L; - /** * Type of queried entities. */ @@ -75,10 +73,10 @@ import org.apache.polygene.spi.query.QuerySource; * @param resultType type of queried entities; cannot be null * @param whereClause where clause */ - /* package */ QueryImpl( final Class<T> resultType, + QueryImpl( final Class<T> resultType, final Predicate<Composite> whereClause, final QuerySource querySource - ) + ) { this.resultType = resultType; this.whereClause = whereClause; @@ -148,7 +146,7 @@ import org.apache.polygene.spi.query.QuerySource; { if( variables == null ) { - variables = new HashMap<String, Object>(); + variables = new HashMap<>(); } variables.put( name, value ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/service/ServiceInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/service/ServiceInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/service/ServiceInstance.java index cae9e4b..ba21ca5 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/service/ServiceInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/service/ServiceInstance.java @@ -20,14 +20,12 @@ package org.apache.polygene.runtime.service; -import java.lang.reflect.Proxy; import org.apache.polygene.api.activation.Activation; import org.apache.polygene.api.activation.ActivationException; import org.apache.polygene.api.activation.PassivationException; import org.apache.polygene.api.configuration.Configuration; import org.apache.polygene.api.configuration.Enabled; import org.apache.polygene.api.service.Availability; -import org.apache.polygene.api.service.ServiceComposite; import org.apache.polygene.api.util.Classes; import org.apache.polygene.runtime.composite.TransientInstance; import org.apache.polygene.runtime.composite.TransientStateInstance; @@ -38,11 +36,6 @@ import org.apache.polygene.runtime.composite.TransientStateInstance; public class ServiceInstance extends TransientInstance implements Activation { - public static TransientInstance serviceInstanceOf( ServiceComposite composite ) - { - return (TransientInstance) Proxy.getInvocationHandler( composite ); - } - private final boolean implementsServiceAvailable; private final boolean hasEnabledConfiguration; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/structure/ModuleInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/structure/ModuleInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/structure/ModuleInstance.java index 09a3eb6..955df41 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/structure/ModuleInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/structure/ModuleInstance.java @@ -66,7 +66,6 @@ import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; import org.apache.polygene.api.value.NoSuchValueException; import org.apache.polygene.api.value.ValueBuilder; import org.apache.polygene.api.value.ValueBuilderFactory; -import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.api.value.ValueDescriptor; import org.apache.polygene.runtime.activation.ActivationDelegate; import org.apache.polygene.runtime.composite.FunctionStateResolver; @@ -94,6 +93,7 @@ import org.apache.polygene.spi.module.ModuleSpi; import static java.util.Arrays.asList; import static java.util.stream.Stream.concat; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; /** * Instance of a Polygene Module. Contains the various composites for this Module. @@ -326,7 +326,7 @@ public class ModuleInstance { Objects.requireNonNull( prototype, "prototype" ); - ValueInstance valueInstance = ValueInstance.valueInstanceOf( (ValueComposite) prototype ); + ValueInstance valueInstance = (ValueInstance) compositeInstanceOf( (Composite) prototype ); Class<Composite> valueType = (Class<Composite>) valueInstance.types().findFirst().orElse( null ); ValueDescriptor model = typeLookup.lookupValueModel( valueType ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/type/ValueTypeFactoryInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/type/ValueTypeFactoryInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/type/ValueTypeFactoryInstance.java index 77273c4..e5ccdf5 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/type/ValueTypeFactoryInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/type/ValueTypeFactoryInstance.java @@ -24,6 +24,7 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import org.apache.polygene.api.common.InvalidApplicationException; +import org.apache.polygene.api.composite.Composite; import org.apache.polygene.api.entity.EntityComposite; import org.apache.polygene.api.entity.EntityDescriptor; import org.apache.polygene.api.structure.ModuleDescriptor; @@ -40,6 +41,8 @@ import org.apache.polygene.runtime.entity.EntityInstance; import org.apache.polygene.runtime.value.ValueInstance; import org.apache.polygene.spi.type.ValueTypeFactory; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; + public class ValueTypeFactoryInstance implements ValueTypeFactory { private static final ValueTypeFactoryInstance INSTANCE = new ValueTypeFactoryInstance(); @@ -54,11 +57,12 @@ public class ValueTypeFactoryInstance implements ValueTypeFactory { if( object instanceof ValueComposite ) { - return ValueInstance.valueInstanceOf( (ValueComposite) object ).descriptor().valueType(); + ValueInstance valueInstance = (ValueInstance) compositeInstanceOf( (Composite) object ); + return valueInstance.descriptor().valueType(); } if( object instanceof EntityComposite ) { - return EntityInstance.entityInstanceOf( (EntityComposite) object ).descriptor().valueType(); + return ( (EntityInstance) compositeInstanceOf( (Composite) object ) ).descriptor().valueType(); } if( object instanceof Enum ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java index c23d0c1..7f4dedf 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/ModuleUnitOfWork.java @@ -68,13 +68,12 @@ import org.apache.polygene.api.unitofwork.UnitOfWorkCompletionException; import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; import org.apache.polygene.api.usecase.Usecase; import org.apache.polygene.api.value.ValueBuilder; -import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.runtime.association.AssociationInstance; import org.apache.polygene.runtime.composite.FunctionStateResolver; import org.apache.polygene.runtime.entity.EntityInstance; import org.apache.polygene.runtime.entity.EntityModel; import org.apache.polygene.runtime.property.PropertyModel; -import org.apache.polygene.runtime.value.ValueInstance; +import org.apache.polygene.runtime.value.ValueStateInstance; import org.apache.polygene.spi.entity.EntityState; import org.apache.polygene.spi.entity.EntityStatus; import org.apache.polygene.spi.entitystore.EntityStore; @@ -84,6 +83,7 @@ import org.apache.polygene.spi.query.EntityFinderException; import org.apache.polygene.spi.query.QueryBuilderSPI; import org.apache.polygene.spi.query.QuerySource; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; import static org.apache.polygene.api.identity.HasIdentity.IDENTITY_STATE_NAME; /** @@ -306,7 +306,7 @@ public class ModuleUnitOfWork throws NoSuchEntityTypeException { EntityComposite entityComposite = (EntityComposite) entity; - EntityInstance compositeInstance = EntityInstance.entityInstanceOf( entityComposite ); + EntityInstance compositeInstance = (EntityInstance) compositeInstanceOf( entityComposite ); EntityDescriptor model = compositeInstance.entityModel(); Class<T> type = (Class<T>) compositeInstance.types().findFirst().orElse( null ); return uow.get( compositeInstance.reference(), this, Collections.singletonList( model ), type ); @@ -320,7 +320,7 @@ public class ModuleUnitOfWork EntityComposite entityComposite = (EntityComposite) entity; - EntityInstance compositeInstance = EntityInstance.entityInstanceOf( entityComposite ); + EntityInstance compositeInstance = (EntityInstance) compositeInstanceOf( entityComposite ); if( compositeInstance.status() == EntityStatus.NEW ) { @@ -516,13 +516,13 @@ public class ModuleUnitOfWork { T entity = get( primaryType, valueComposite.identity().get() ); // If successful, then this entity is to by modified. - EntityInstance instance = EntityInstance.entityInstanceOf( (EntityComposite) entity ); + EntityInstance instance = (EntityInstance) compositeInstanceOf( (EntityComposite) entity ); EntityState state = instance.entityState(); FunctionStateResolver stateResolver = new FunctionStateResolver( propertyFunction, assocationFunction, manyAssocFunction, namedAssocFunction ); - EntityModel model = (EntityModel) EntityInstance.entityInstanceOf( (EntityComposite) entity ).descriptor(); + EntityModel model = (EntityModel) compositeInstanceOf( (Composite) entity ).descriptor(); stateResolver.populateState( model, state ); return entity; } @@ -553,6 +553,11 @@ public class ModuleUnitOfWork return converter; } + private static EntityState getEntityState( Object entity ) + { + return ( (EntityInstance) compositeInstanceOf( (Composite) entity ) ).entityState(); + } + private static class UoWQuerySource implements QuerySource { private final ModuleUnitOfWork moduleUnitOfWork; @@ -673,8 +678,7 @@ public class ModuleUnitOfWork @Override public Object apply( PropertyDescriptor propertyDescriptor ) { - EntityState entityState = EntityInstance.entityInstanceOf( (EntityComposite) entity ).entityState(); - return entityState.propertyValueOf( propertyDescriptor.qualifiedName() ); + return getEntityState( entity ).propertyValueOf( propertyDescriptor.qualifiedName() ); } } @@ -691,8 +695,7 @@ public class ModuleUnitOfWork @Override public EntityReference apply( AssociationDescriptor associationDescriptor ) { - EntityState entityState = EntityInstance.entityInstanceOf( (EntityComposite) entity ).entityState(); - return entityState.associationValueOf( associationDescriptor.qualifiedName() ); + return getEntityState( entity ).associationValueOf( associationDescriptor.qualifiedName() ); } } @@ -709,8 +712,7 @@ public class ModuleUnitOfWork @Override public Stream<EntityReference> apply( AssociationDescriptor associationDescriptor ) { - EntityState entityState = EntityInstance.entityInstanceOf( (EntityComposite) entity ).entityState(); - return entityState.manyAssociationValueOf( associationDescriptor.qualifiedName() ).stream(); + return getEntityState( entity ).manyAssociationValueOf( associationDescriptor.qualifiedName() ).stream(); } } @@ -727,9 +729,9 @@ public class ModuleUnitOfWork @Override public Stream<Map.Entry<String, EntityReference>> apply( AssociationDescriptor associationDescriptor ) { - EntityState entityState = EntityInstance.entityInstanceOf( (EntityComposite) entity ).entityState(); - return entityState.namedAssociationValueOf( associationDescriptor.qualifiedName() ).stream(); + return getEntityState( entity ).namedAssociationValueOf( associationDescriptor.qualifiedName() ).stream(); } + } private class ToEntityPropertyMappingFunction<T> @@ -745,7 +747,7 @@ public class ModuleUnitOfWork @Override public Object apply( PropertyDescriptor propertyDescriptor ) { - StateHolder state = ValueInstance.valueInstanceOf( (ValueComposite) value ).state(); + StateHolder state = getValueStateInstance( value ); Property<Object> property = state.propertyFor( propertyDescriptor.accessor() ); return property.get(); } @@ -766,7 +768,7 @@ public class ModuleUnitOfWork @SuppressWarnings( "unchecked" ) public EntityReference apply( AssociationDescriptor associationDescriptor ) { - AssociationStateHolder state = ValueInstance.valueInstanceOf( (ValueComposite) value ).state(); + AssociationStateHolder state = getValueStateInstance( value ); AssociationInstance<T> association = (AssociationInstance<T>) state.associationFor( associationDescriptor.accessor() ); return association.getAssociationState().get(); } @@ -786,8 +788,7 @@ public class ModuleUnitOfWork @Override public Stream<EntityReference> apply( AssociationDescriptor associationDescriptor ) { - ValueInstance valueInstance = ValueInstance.valueInstanceOf( (ValueComposite) value ); - return valueInstance.state().manyAssociationFor( associationDescriptor.accessor() ).references(); + return getValueStateInstance( value ).manyAssociationFor( associationDescriptor.accessor() ).references(); } } @@ -804,8 +805,12 @@ public class ModuleUnitOfWork @Override public Stream<Map.Entry<String, EntityReference>> apply( AssociationDescriptor associationDescriptor ) { - ValueInstance valueInstance = ValueInstance.valueInstanceOf( (ValueComposite) value ); - return valueInstance.state().namedAssociationFor( associationDescriptor.accessor() ).references(); + return getValueStateInstance( value ).namedAssociationFor( associationDescriptor.accessor() ).references(); } } + + private static ValueStateInstance getValueStateInstance( Object value ) + { + return (ValueStateInstance) compositeInstanceOf( (Composite) value ).state(); + } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/UnitOfWorkFactoryMixin.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/UnitOfWorkFactoryMixin.java b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/UnitOfWorkFactoryMixin.java index d5a3609..13132c6 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/UnitOfWorkFactoryMixin.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/unitofwork/UnitOfWorkFactoryMixin.java @@ -22,6 +22,7 @@ package org.apache.polygene.runtime.unitofwork; import java.time.Instant; import java.util.Stack; +import org.apache.polygene.api.composite.CompositeInstance; import org.apache.polygene.api.composite.TransientBuilderFactory; import org.apache.polygene.api.entity.EntityComposite; import org.apache.polygene.api.injection.scope.Structure; @@ -94,7 +95,7 @@ public class UnitOfWorkFactoryMixin @Override public UnitOfWork getUnitOfWork( EntityComposite entity ) { - EntityInstance instance = EntityInstance.entityInstanceOf( entity ); + EntityInstance instance = (EntityInstance) CompositeInstance.compositeInstanceOf( entity ); return instance.unitOfWork(); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueBuilderWithPrototype.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueBuilderWithPrototype.java b/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueBuilderWithPrototype.java index 78815f6..ecf2e5f 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueBuilderWithPrototype.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueBuilderWithPrototype.java @@ -25,10 +25,10 @@ import java.util.stream.Stream; import org.apache.polygene.api.association.AssociationDescriptor; import org.apache.polygene.api.association.AssociationStateHolder; import org.apache.polygene.api.common.ConstructionException; +import org.apache.polygene.api.composite.Composite; import org.apache.polygene.api.entity.EntityReference; import org.apache.polygene.api.property.PropertyDescriptor; import org.apache.polygene.api.value.ValueBuilder; -import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.api.value.ValueDescriptor; import org.apache.polygene.runtime.composite.FunctionStateResolver; import org.apache.polygene.runtime.composite.MixinModel; @@ -38,6 +38,8 @@ import org.apache.polygene.runtime.composite.UsesInstance; import org.apache.polygene.runtime.injection.InjectionContext; import org.apache.polygene.runtime.structure.ModuleInstance; +import static org.apache.polygene.api.composite.CompositeInstance.compositeInstanceOf; + /** * Implementation of ValueBuilder with a prototype supplied */ @@ -50,12 +52,12 @@ public class ValueBuilderWithPrototype<T> public ValueBuilderWithPrototype( ValueDescriptor compositeModelModule, ModuleInstance currentModule, T prototype - ) + ) { valueModel = (ValueModel) compositeModelModule; MixinsModel mixinsModel = valueModel.mixinsModel(); Object[] mixins = mixinsModel.newMixinHolder(); - final ValueStateInstance prototypeState = ValueInstance.valueInstanceOf( (ValueComposite) prototype ).state(); + final ValueStateInstance prototypeState = ( (ValueInstance) compositeInstanceOf( (Composite) prototype ) ).state(); StateResolver resolver = new FunctionStateResolver( new PropertyDescriptorFunction( prototypeState ), new AssociationDescriptorEntityReferenceFunction( prototypeState ), http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueInstance.java b/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueInstance.java index 47e8460..63c38d5 100644 --- a/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueInstance.java +++ b/core/runtime/src/main/java/org/apache/polygene/runtime/value/ValueInstance.java @@ -22,7 +22,6 @@ package org.apache.polygene.runtime.value; import java.lang.reflect.Proxy; import org.apache.polygene.api.composite.CompositeInstance; import org.apache.polygene.api.serialization.Serializer; -import org.apache.polygene.api.value.ValueComposite; import org.apache.polygene.runtime.composite.MixinsInstance; import org.apache.polygene.runtime.composite.TransientInstance; import org.apache.polygene.runtime.property.PropertyInstance; @@ -31,15 +30,9 @@ import org.apache.polygene.spi.module.ModuleSpi; /** * ValueComposite instance */ -public final class ValueInstance - extends TransientInstance +public final class ValueInstance extends TransientInstance implements CompositeInstance, MixinsInstance { - public static ValueInstance valueInstanceOf( ValueComposite composite ) - { - return (ValueInstance) Proxy.getInvocationHandler( composite ); - } - public ValueInstance( ValueModel compositeModel, Object[] mixins, ValueStateInstance state ) { super( compositeModel, mixins, state ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java index 31c6b82..e0d8f6b 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/injection/ServiceInjectionTest.java @@ -24,12 +24,11 @@ import java.io.Serializable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.function.Predicate; -import org.apache.polygene.api.identity.Identity; -import org.apache.polygene.api.identity.StringIdentity; -import org.junit.Test; import org.apache.polygene.api.activation.ActivationException; import org.apache.polygene.api.common.ConstructionException; import org.apache.polygene.api.common.Optional; +import org.apache.polygene.api.identity.Identity; +import org.apache.polygene.api.identity.StringIdentity; import org.apache.polygene.api.injection.scope.Service; import org.apache.polygene.api.mixin.Mixins; import org.apache.polygene.api.object.ObjectFactory; @@ -45,11 +44,12 @@ import org.apache.polygene.bootstrap.LayerAssembly; import org.apache.polygene.bootstrap.ModuleAssembly; import org.apache.polygene.bootstrap.ServiceDeclaration; import org.apache.polygene.bootstrap.SingletonAssembler; +import org.junit.Test; -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertEquals; import static org.apache.polygene.api.common.Visibility.application; import static org.apache.polygene.api.common.Visibility.layer; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; /** @@ -168,17 +168,17 @@ public class ServiceInjectionTest } @Mixins( MyServiceMixin.class ) - public static interface MyServiceComposite + public interface MyServiceComposite extends MyService, ServiceComposite { } - public static interface MyServiceComposite2 + public interface MyServiceComposite2 extends MyServiceComposite { } - public static interface MyService + public interface MyService { String doStuff(); } @@ -302,7 +302,7 @@ public class ServiceInjectionTest @Retention( RetentionPolicy.RUNTIME ) public @interface Named { - public abstract String value(); + String value(); } public static final class NamedSelector @@ -337,13 +337,13 @@ public class ServiceInjectionTest } } - public static interface Foo<T> + public interface Foo<T> { T get(); } @Mixins( StringService.Mixin.class ) - public static interface StringService + public interface StringService extends Foo<String>, ServiceComposite { class Mixin @@ -358,7 +358,7 @@ public class ServiceInjectionTest } @Mixins( LongService.Mixin.class ) - public static interface LongService + public interface LongService extends Foo<Long>, ServiceComposite { class Mixin http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/DefaultMethodsTest.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/DefaultMethodsTest.java b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/DefaultMethodsTest.java index 7795329..320d98b 100644 --- a/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/DefaultMethodsTest.java +++ b/core/runtime/src/test/java/org/apache/polygene/runtime/mixin/DefaultMethodsTest.java @@ -51,6 +51,7 @@ public class DefaultMethodsTest extends AbstractPolygeneTest phrase.set( "Hello" ); Hello hello = builder.newInstance(); assertThat( hello.speak(), equalTo( "Hello" ) ); + assertThat( Hello.noise(), equalTo( "Good Bye" ) ); } @Test @@ -62,6 +63,8 @@ public class DefaultMethodsTest extends AbstractPolygeneTest phrase.set( "Hello" ); Hello hello = builder.newInstance(); assertThat( hello.speak(), equalTo( "Hello, Mixin!" ) ); + assertThat( Hello.noise(), equalTo( "Good Bye" ) ); + } public interface Hello @@ -72,6 +75,11 @@ public class DefaultMethodsTest extends AbstractPolygeneTest { return phrase().get(); } + + static String noise() + { + return "Good Bye"; + } } public static abstract class SpeakMixin http://git-wip-us.apache.org/repos/asf/polygene-java/blob/931c2eeb/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreInfo.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreInfo.java b/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreInfo.java index fc59c15..f1ca941 100644 --- a/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreInfo.java +++ b/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreInfo.java @@ -19,14 +19,12 @@ */ package org.apache.polygene.entitystore.preferences; -import java.io.Serializable; import java.util.prefs.Preferences; /** * @author [email protected] */ public final class PreferencesEntityStoreInfo - implements Serializable { private Preferences rootNode;
