You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2016/04/14 08:13:31 UTC
[25/34] zest-java git commit: ZEST-136 - Massive changes to the
Runtime, refactoring the Model and Instance relationship.
ZEST-136 - Massive changes to the Runtime, refactoring the Model and Instance relationship.
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/dedb068e
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/dedb068e
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/dedb068e
Branch: refs/heads/develop
Commit: dedb068e4b56fce8d6c21f5938396eb84da63f7c
Parents: 81561b0
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Thu Dec 17 20:40:00 2015 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Thu Dec 17 20:40:08 2015 +0800
----------------------------------------------------------------------
.../main/java/org/apache/zest/api/ZestAPI.java | 4 +-
.../zest/api/composite/CompositeContext.java | 8 +-
.../zest/api/composite/CompositeInstance.java | 4 +-
.../zest/api/composite/ModelDescriptor.java | 7 +
.../zest/api/composite/PropertyMapper.java | 2 +-
.../zest/api/configuration/Configuration.java | 4 +-
.../zest/api/property/PropertyDescriptor.java | 3 +-
.../org/apache/zest/api/structure/Layer.java | 4 +
.../zest/api/structure/LayerDescriptor.java | 20 +
.../org/apache/zest/api/structure/Module.java | 42 +-
.../zest/api/structure/ModuleDescriptor.java | 92 +++-
.../apache/zest/api/structure/TypeLookup.java | 175 ++++++
.../api/structure/UsedLayersDescriptor.java | 4 +-
.../java/org/apache/zest/api/type/HasTypes.java | 4 +-
.../unitofwork/EntityTypeNotFoundException.java | 19 +-
.../apache/zest/api/unitofwork/UnitOfWork.java | 15 +-
.../zest/api/value/ValueBuilderTemplate.java | 5 +-
.../zest/api/value/ValueDeserializer.java | 104 ++--
.../api/configuration/ConfigurationTest.java | 2 +-
.../DeclareConfigurationDefaultsTest.java | 2 +-
.../dataset/iterable/IterableDataSetTest.java | 2 +-
.../decoratorMixin/DecoratorMixinTest.java | 4 +-
.../zest/api/object/ObjectBuilderTest.java | 2 +-
.../api/unitofwork/UnitOfWorkTemplateTest.java | 4 +-
.../zest/api/value/DocumentationSupport.java | 26 +-
.../zest/api/value/ValueCompositeTest.java | 44 +-
.../apache/zest/runtime/ZestRuntimeImpl.java | 4 +-
.../runtime/activation/ActivatorsModel.java | 5 +-
.../bootstrap/ApplicationModelFactoryImpl.java | 2 +-
.../runtime/bootstrap/EntityAssemblyImpl.java | 4 +-
.../runtime/bootstrap/ModuleAssemblyImpl.java | 39 +-
.../runtime/bootstrap/ObjectAssemblyImpl.java | 5 +-
.../runtime/bootstrap/ServiceAssemblyImpl.java | 5 +-
.../bootstrap/TransientAssemblyImpl.java | 12 +-
.../runtime/bootstrap/ValueAssemblyImpl.java | 39 +-
.../composite/AbstractModifierModel.java | 7 +-
.../runtime/composite/CompositeMethodModel.java | 15 +-
.../composite/CompositeMethodsModel.java | 6 +-
.../zest/runtime/composite/CompositeModel.java | 18 +-
.../zest/runtime/composite/ConcernsModel.java | 5 +-
.../runtime/composite/SideEffectsModel.java | 7 +-
.../composite/TransientBuilderInstance.java | 15 +-
.../runtime/composite/TransientInstance.java | 23 +-
.../zest/runtime/composite/TransientModel.java | 11 +-
.../zest/runtime/entity/EntityInstance.java | 13 +-
.../apache/zest/runtime/entity/EntityModel.java | 10 +-
.../runtime/injection/InjectionContext.java | 25 +-
.../ServiceInjectionProviderFactory.java | 8 +-
.../StructureInjectionProviderFactory.java | 37 +-
.../provider/UsesInjectionProviderFactory.java | 2 +-
.../apache/zest/runtime/object/ObjectModel.java | 12 +-
.../zest/runtime/object/ObjectsModel.java | 2 +-
.../zest/runtime/property/PropertyModel.java | 5 +-
.../runtime/service/ImportedServiceModel.java | 14 +-
.../ImportedServiceReferenceInstance.java | 30 +-
.../service/ImportedServicesInstance.java | 4 +-
.../runtime/service/ImportedServicesModel.java | 7 +-
.../zest/runtime/service/ServiceInstance.java | 4 +-
.../zest/runtime/service/ServiceModel.java | 14 +-
.../service/ServiceReferenceInstance.java | 11 +-
.../zest/runtime/service/ServicesInstance.java | 13 +-
.../zest/runtime/service/ServicesModel.java | 7 +-
.../runtime/structure/ApplicationInstance.java | 2 +-
.../runtime/structure/ApplicationModel.java | 43 +-
.../zest/runtime/structure/LayerInstance.java | 65 +--
.../zest/runtime/structure/LayerModel.java | 55 +-
.../runtime/structure/ModuleClassLoader.java | 182 +++++++
.../zest/runtime/structure/ModuleInstance.java | 533 ++++---------------
.../zest/runtime/structure/ModuleModel.java | 274 +++++++++-
.../zest/runtime/structure/TypeLookupImpl.java | 341 ++++++------
.../runtime/structure/UsedLayersInstance.java | 17 +-
.../zest/runtime/structure/UsedLayersModel.java | 8 +-
.../zest/runtime/types/ValueTypeFactory.java | 4 +-
.../unitofwork/EntityBuilderInstance.java | 15 +-
.../runtime/unitofwork/ModuleUnitOfWork.java | 75 ++-
.../unitofwork/UnitOfWorkFactoryMixin.java | 4 +-
.../runtime/unitofwork/UnitOfWorkInstance.java | 24 +-
.../runtime/value/ValueBuilderInstance.java | 11 +-
.../value/ValueBuilderWithPrototype.java | 6 +-
.../runtime/value/ValueBuilderWithState.java | 10 +-
.../zest/runtime/value/ValueInstance.java | 3 +-
.../apache/zest/runtime/value/ValueModel.java | 13 +-
.../zest/runtime/value/ValueStateInstance.java | 5 +-
.../apache/zest/api/common/OptionalTest.java | 12 +-
.../zest/api/common/PropertyTypeTest.java | 2 +-
.../zest/api/common/ValueCompositeTest.java | 38 +-
.../zest/bootstrap/ServiceAssemblyTest.java | 2 +-
.../constraints/PropertyConstraintTest.java | 2 +-
.../zest/regression/qi230/Qi230IssueTest.java | 4 +-
.../apache/zest/regression/qi377/IssueTest.java | 2 +-
...alueCollisionWithRelatedReturnTypesTest.java | 26 +-
.../apache/zest/regression/qi53/IssueTest.java | 2 +-
.../apache/zest/regression/qi55/IssueTest.java | 4 +-
.../apache/zest/regression/qi65/IssueTest.java | 2 +-
.../apache/zest/regression/qi74/IssueTest.java | 2 +-
.../apache/zest/regression/qi78/IssueTest.java | 11 +-
.../org/apache/zest/runtime/ZestAPITest.java | 6 +-
.../runtime/appliesto/AppliesToFilterTest.java | 2 +-
.../AppliesToOrConditionQI241Test.java | 6 +-
.../zest/runtime/appliesto/AppliesToTest.java | 6 +-
.../appliesto/FragmentAppliesToTest.java | 2 +-
.../association/AssociationEqualityTest.java | 4 +-
.../DereferenceForBootstrappedConcernsTest.java | 4 +-
.../runtime/composite/AbstractMixinTest.java | 2 +-
.../composite/CompositeFactoryImplTest.java | 4 +-
.../runtime/composite/FunctionalListTest.java | 2 +-
.../zest/runtime/composite/MapOverrideTest.java | 14 +-
.../zest/runtime/composite/QI247Test1.java | 14 +-
.../zest/runtime/composite/QI247Test2.java | 14 +-
.../zest/runtime/composite/QI256Test.java | 66 +--
.../runtime/composite/TransientAsClassTest.java | 2 +-
.../runtime/concerns/GenericConcernTest.java | 2 +-
.../runtime/concerns/ModuleConcernTest.java | 2 +-
.../runtime/constraints/ConstraintsTest.java | 8 +-
.../zest/runtime/defaults/UseDefaultsTest.java | 2 +-
.../injection/ActivatorInjectionTest.java | 4 +-
.../runtime/injection/ServiceInjectionTest.java | 8 +-
.../runtime/injection/StateInjectionTest.java | 2 +-
.../injection/StateParameterInjectionTest.java | 2 +-
.../injection/StructureInjectionTest.java | 14 +-
.../runtime/injection/ThisInjectionTest.java | 2 +-
.../runtime/injection/UsesGenericClassTest.java | 2 +-
.../runtime/injection/UsesGenericListTest.java | 2 +-
.../zest/runtime/injection/UsesGraphTest.java | 4 +-
.../runtime/injection/UsesInjectionTest.java | 8 +-
.../ServiceInstantiationTests.java | 2 +-
.../TransientInstantiationTests.java | 2 +-
.../instantiation/ValueInstantiationTests.java | 10 +-
.../zest/runtime/mixin/AssemblyMixinTest.java | 2 +-
.../zest/runtime/mixin/AssemblyRoleTest.java | 4 +-
.../zest/runtime/mixin/InitializableTest.java | 4 +-
.../apache/zest/runtime/mixin/JDKMixinTest.java | 4 +-
.../mixin/MethodInterceptionMixinTest.java | 2 +-
.../zest/runtime/mixin/MixinPrecedenceTest.java | 6 +-
.../mixin/MixinsOnThisInjectionTest.java | 2 +-
.../zest/runtime/mixin/PrivateMixinTest.java | 2 +-
.../apache/zest/runtime/mixin/Qi228Test.java | 2 +-
.../runtime/property/ImmutablePropertyTest.java | 4 +-
.../runtime/property/PropertyEqualityTest.java | 73 +--
.../property/PropertyStringArrayTest.java | 2 +-
.../zest/runtime/property/PropertyTest.java | 2 +-
.../property/ValueNestedBuilderTest.java | 12 +-
.../zest/runtime/query/NonQueryableTest.java | 4 +-
.../query/QueryBuilderFactoryImplTest.java | 18 +-
.../runtime/service/ComplexActivatableTest.java | 2 +-
.../zest/runtime/service/ConfigurationTest.java | 6 -
.../zest/runtime/service/ServiceFinderTest.java | 4 +-
.../sideeffects/GenericSideEffectTest.java | 2 +-
.../sideeffects/ModuleSideEffectTest.java | 2 +-
.../sideeffects/SpecificSideEffectTest.java | 2 +-
.../structure/CompositeDescriptorTest.java | 2 +-
.../zest/runtime/structure/ModuleTest.java | 2 +-
.../runtime/threaded/ContextCompositeTest.java | 4 +-
.../runtime/value/NestedValueBuilderTest.java | 12 +-
.../runtime/value/ValueCompositeBasicsTest.java | 6 +-
.../zest/runtime/value/ValueEqualityTest.java | 44 +-
.../ValueInjectionDeserializationTest.java | 2 +-
.../value/ValueSerializationRegressionTest.java | 2 +-
.../runtime/value/ValueWithAssociationTest.java | 6 +-
.../service/importer/InstanceImporterTest.java | 2 +-
.../service/importer/NewObjectImporterTest.java | 2 -
.../importer/ServiceInstanceImporterTest.java | 2 -
.../test/composite/CleanStackTraceTest.java | 2 +-
.../ConcurrentModificationCheckConcern.java | 14 +-
.../DefaultEntityStoreUnitOfWork.java | 16 +-
.../spi/entitystore/EntityStateVersions.java | 4 +-
.../zest/spi/entitystore/EntityStore.java | 6 +-
.../zest/spi/entitystore/EntityStoreSPI.java | 7 +-
.../spi/entitystore/EntityStoreUnitOfWork.java | 8 +-
.../entitystore/helpers/JSONEntityState.java | 28 +-
.../helpers/JSONMapEntityStoreMixin.java | 38 +-
.../helpers/MapEntityStoreMixin.java | 36 +-
.../org/apache/zest/spi/module/ModuleSpi.java | 16 +-
.../apache/zest/spi/structure/ModelModule.java | 107 ----
.../apache/zest/spi/structure/TypeLookup.java | 125 -----
.../spi/value/ValueDeserializerAdapter.java | 323 ++++++-----
.../orgjson/OrgJsonValueDeserializer.java | 196 +++----
.../orgjson/OrgJsonValueSerialization.java | 160 ------
.../helpers/JSONManyAssociationStateTest.java | 2 +
.../org/apache/zest/test/AbstractZestTest.java | 36 +-
.../zest/test/cache/AbstractCachePoolTest.java | 2 +-
...bstractConfigurationDeserializationTest.java | 3 +-
.../test/entity/AbstractEntityStoreTest.java | 20 +-
.../test/indexing/AbstractAnyQueryTest.java | 4 +-
.../test/indexing/AbstractComplexQueryTest.java | 74 +--
.../test/indexing/AbstractEntityFinderTest.java | 10 +-
.../test/indexing/AbstractNamedQueryTest.java | 52 +-
.../zest/test/indexing/AbstractQueryTest.java | 133 ++---
.../AbstractCollectionSerializationTest.java | 84 ++-
.../test/value/AbstractJsonDateFormatTest.java | 12 +-
.../AbstractPlainValueSerializationTest.java | 48 +-
...AbstractValueCompositeSerializationTest.java | 30 +-
.../entitystore/jdbm/JdbmEntityStoreTest.java | 2 +-
.../jdbm/JdbmEntityStoreWithCacheTest.java | 2 +-
.../mongodb/MongoMapEntityStoreTest.java | 2 +-
.../MongoMapEntityStoreWithCacheTest.java | 2 +-
.../prefs/PreferencesEntityStoreMixin.java | 172 +++---
.../redis/RedisMapEntityStoreTest.java | 2 +-
.../redis/RedisMapEntityStoreWithCacheTest.java | 2 +-
.../riak/RiakHttpMapEntityStoreTest.java | 2 +-
.../riak/RiakMapEntityStoreWithCacheTest.java | 2 +-
.../riak/RiakProtobufMapEntityStoreTest.java | 2 +-
.../entitystore/sql/SQLEntityStoreMixin.java | 45 +-
.../sql/DerbySQLEntityStoreTest.java | 2 +-
.../entitystore/sql/MySQLEntityStoreTest.java | 2 +-
.../sql/PostgreSQLEntityStoreTest.java | 2 +-
.../elasticsearch/ElasticSearchIndexer.java | 13 +-
.../index/elasticsearch/ElasticSearchTest.java | 16 +-
.../index/elasticsearch/ImmenseTermTest.java | 2 +-
.../apache/zest/index/rdf/ContainsAllTest.java | 12 +-
.../org/apache/zest/index/rdf/ContainsTest.java | 12 +-
.../zest/index/rdf/RDFPerformanceTest.java | 8 +-
.../zest/index/rdf/qi173/Qi173IssueTest.java | 2 +-
.../withPropagationMandatory/IssueTest.java | 2 +-
.../qi64/withPropagationRequired/IssueTest.java | 2 +-
.../withPropagationRequiresNew/IssueTest.java | 2 +-
.../zest/index/solr/SolrQueryServiceTest.java | 4 +-
.../skeletons/SQLCompatEntityStateWrapper.java | 7 +
.../postgresql/PostgreSQLComplexQueryTest.java | 2 +-
.../postgresql/PostgreSQLDBIntegrityTest.java | 4 +-
.../postgresql/PostgreSQLEntityFinderTest.java | 2 +-
.../sql/postgresql/PostgreSQLQueryTest.java | 2 +-
.../index/sql/postgresql/SQLTestHelper.java | 5 +-
.../reindexer/internal/ReindexerMixin.java | 4 +-
.../zest/index/reindexer/ReindexerTest.java | 4 +-
.../jackson/JacksonValueDeserializer.java | 65 +--
.../stax/StaxValueDeserializer.java | 112 ++--
.../StaxConfigurationDeserializationTest.java | 4 +-
.../library/alarm/AlarmHistoryImplTest.java | 4 +-
.../zest/library/alarm/AlarmPointImplTest.java | 4 +-
.../zest/library/alarm/AlarmServiceTest.java | 8 +-
.../library/alarm/ExtendedAlarmModelTest.java | 38 +-
.../library/alarm/SimpleAlarmModelTest.java | 16 +-
.../library/alarm/StandardAlarmModelTest.java | 20 +-
.../BreaksCircuitOnThrowableTest.java | 4 +-
.../library/constraints/ConstraintTest.java | 54 +-
.../library/constraints/qi70/IssueTest.java | 2 +-
.../conversion/values/EntityToValue.java | 2 +-
.../conversion/values/ValueToEntityMixin.java | 11 +-
.../conversion/values/EntityToValueTest.java | 10 +-
.../values/NestedValuesConversionTest.java | 4 +-
.../conversion/values/ValueToEntityTest.java | 32 +-
.../source/jdbm/JdbmEventStoreService.java | 4 +-
.../source/jdbm/JdbmEventStoreServiceTest.java | 2 +-
.../AbstractApplicationEventStoreMixin.java | 3 +-
.../domain/replay/DomainEventPlayerService.java | 2 +-
.../domain/source/AbstractEventStoreMixin.java | 3 +-
.../application/ApplicationEventTest.java | 2 +-
.../eventsourcing/domain/DomainEventTest.java | 2 +-
.../zest/library/http/JettyServiceTest.java | 2 +-
.../library/jmx/ApplicationManagerService.java | 10 +-
.../jmx/ConfigurationManagerService.java | 3 +-
.../library/javascript/JavaScriptMixinTest.java | 2 +-
.../zest/library/locking/LockingTest.java | 2 +-
.../zest/library/logging/DebuggingTest.java | 4 +-
.../zest/library/logging/TracingTest.java | 16 +-
.../zest/library/metrics/MetricsTest.java | 6 +-
.../zest/library/osgi/OSGiServiceTest.java | 2 +-
.../zest/library/rdf/ApplicationXmlTest.java | 2 +-
.../rdf/entity/EntitySerializerTest.java | 11 +-
.../rdf/entity/EntityTypeSerializerTest.java | 9 +-
.../rdf/repository/MemoryRepositoryTest.java | 5 -
.../rdf/repository/NativeRepositoryTest.java | 7 +-
.../rest/client/RequestWriterDelegator.java | 2 +-
.../rest/client/ResponseReaderDelegator.java | 2 +-
.../responsereader/JSONResponseReader.java | 10 +-
.../ContextResourceClientFactoryTest.java | 6 +-
.../rest/client/ContinuousIntegrationTest.java | 6 +-
.../zest/library/rest/client/RssReaderTest.java | 2 +-
.../library/rest/common/table/TableQuery.java | 2 +-
.../rest/server/api/ContextResource.java | 5 +-
.../server/restlet/RequestReaderDelegator.java | 2 +-
.../server/restlet/ResponseWriterDelegator.java | 2 +-
.../requestreader/DefaultRequestReader.java | 6 +-
.../ValueDescriptorResponseWriter.java | 8 +-
.../zest/library/rest/admin/EntityResource.java | 12 +-
.../zest/library/rest/admin/RestTest.java | 8 +-
.../serialization/JsonRepresentation.java | 6 +-
.../zest/library/scheduler/SchedulerTest.java | 6 +-
.../zest/library/shiro/PasswordDomainTest.java | 2 +-
.../library/shiro/PermissionsDomainTest.java | 4 +-
.../internal/service/ServiceLocator.java | 2 -
.../DataSourceConfigurationManagerService.java | 4 +-
.../sql/datasource/ExternalDataSourceTest.java | 2 +-
.../uid/sequence/PersistingSequencingTest.java | 6 +-
.../uid/sequence/TransientSequencingTest.java | 6 +-
.../zest/library/uid/uuid/UuidServiceTest.java | 4 +-
.../zest/library/uowfile/HasUoWFileTest.java | 2 +-
.../zest/library/uowfile/HasUoWFilesTest.java | 2 +-
.../conversion/EntityToDTOService.java | 4 +-
.../conversion/EntityToDTOService.java | 25 +-
.../zest/sample/rental/web/QuikitServlet.java | 5 +-
.../composite/InvocationPerformanceTest.java | 6 +-
.../PropertyMixinInvocationPerformanceTest.java | 4 +-
.../niclas2/ConcernsOnPropertyTest.java | 3 +-
.../ApplicationDetailDescriptorBuilder.java | 16 +-
.../ImportedServiceCompositeDescriptor.java | 8 +-
.../tutorials/cargo/step2/Step2TestCase.java | 6 +-
.../apache/zest/tutorials/hello/HelloTest.java | 2 +-
.../apache/zest/tutorials/hello/HelloTest2.java | 2 +-
.../apache/zest/tutorials/hello/HelloTest3.java | 2 +-
.../tutorials/services/step2/LibraryTest.java | 2 +-
.../tutorials/services/step3/LibraryTest.java | 2 +-
.../tutorials/services/step4/LibraryTest.java | 2 +-
.../tutorials/services/step5/LibraryTest.java | 2 +-
.../tutorials/services/step6/LibraryTest.java | 2 +-
306 files changed, 2977 insertions(+), 2978 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/ZestAPI.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/ZestAPI.java b/core/api/src/main/java/org/apache/zest/api/ZestAPI.java
index 22eda4c..fca07c3 100644
--- a/core/api/src/main/java/org/apache/zest/api/ZestAPI.java
+++ b/core/api/src/main/java/org/apache/zest/api/ZestAPI.java
@@ -29,7 +29,7 @@ import org.apache.zest.api.entity.EntityDescriptor;
import org.apache.zest.api.property.Property;
import org.apache.zest.api.property.PropertyDescriptor;
import org.apache.zest.api.service.ServiceDescriptor;
-import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.value.ValueDescriptor;
/**
@@ -57,7 +57,7 @@ public interface ZestAPI
*
* @return The Module instance where the Composite or UnitOfWork belongs to.
*/
- Module moduleOf( Object compositeOrUow );
+ ModuleDescriptor moduleOf( Object compositeOrUow );
/**
* Returns the ModelDescriptor of the Composite.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/composite/CompositeContext.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/composite/CompositeContext.java b/core/api/src/main/java/org/apache/zest/api/composite/CompositeContext.java
index e0fffd2..cfb15d6 100644
--- a/core/api/src/main/java/org/apache/zest/api/composite/CompositeContext.java
+++ b/core/api/src/main/java/org/apache/zest/api/composite/CompositeContext.java
@@ -20,7 +20,7 @@ import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.stream.Stream;
import org.apache.zest.api.ZestAPI;
-import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
/**
* Thread-associated composites. This is basically a ThreadLocal which maintains a reference
@@ -30,10 +30,10 @@ import org.apache.zest.api.structure.Module;
public class CompositeContext<T extends TransientComposite>
extends ThreadLocal<T>
{
- private Module module;
+ private ModuleDescriptor module;
private Class<T> type;
- public CompositeContext( Module module, Class<T> type )
+ public CompositeContext( ModuleDescriptor module, Class<T> type )
{
this.module = module;
this.type = type;
@@ -42,7 +42,7 @@ public class CompositeContext<T extends TransientComposite>
@Override
protected T initialValue()
{
- return module.newTransient( type );
+ return module.instance().newTransient( type );
}
@SuppressWarnings( "unchecked" )
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/composite/CompositeInstance.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/composite/CompositeInstance.java b/core/api/src/main/java/org/apache/zest/api/composite/CompositeInstance.java
index 63aa10d..986bedd 100644
--- a/core/api/src/main/java/org/apache/zest/api/composite/CompositeInstance.java
+++ b/core/api/src/main/java/org/apache/zest/api/composite/CompositeInstance.java
@@ -17,7 +17,7 @@ package org.apache.zest.api.composite;
import java.lang.reflect.InvocationHandler;
import org.apache.zest.api.property.StateHolder;
import org.apache.zest.api.structure.MetaInfoHolder;
-import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.type.HasTypes;
/**
@@ -31,7 +31,7 @@ public interface CompositeInstance
<T> T newProxy( Class<T> mixinType )
throws IllegalArgumentException;
- Module module();
+ ModuleDescriptor module();
CompositeDescriptor descriptor();
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/composite/ModelDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/composite/ModelDescriptor.java b/core/api/src/main/java/org/apache/zest/api/composite/ModelDescriptor.java
index a1bef87..e1d79c8 100644
--- a/core/api/src/main/java/org/apache/zest/api/composite/ModelDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/composite/ModelDescriptor.java
@@ -20,6 +20,7 @@ package org.apache.zest.api.composite;
import org.apache.zest.api.common.Visibility;
import org.apache.zest.api.structure.MetaInfoHolder;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.type.HasTypes;
/**
@@ -29,5 +30,11 @@ public interface ModelDescriptor extends HasTypes, MetaInfoHolder
{
Visibility visibility();
+ /** The Module that the Model is declared in.
+ *
+ * @return The Module that this Model was declared in.
+ */
+ ModuleDescriptor module();
+
boolean isAssignableTo( Class<?> type );
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/composite/PropertyMapper.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/composite/PropertyMapper.java b/core/api/src/main/java/org/apache/zest/api/composite/PropertyMapper.java
index 5303094..6fc111a 100644
--- a/core/api/src/main/java/org/apache/zest/api/composite/PropertyMapper.java
+++ b/core/api/src/main/java/org/apache/zest/api/composite/PropertyMapper.java
@@ -462,7 +462,7 @@ public final class PropertyMapper
@SuppressWarnings( "unchecked" )
public Object map( Composite composite, Type type, String value )
{
- return ZestAPI.FUNCTION_COMPOSITE_INSTANCE_OF.apply( composite ).module().newValueFromSerializedState( (Class<Object>) type, value );
+ return ZestAPI.FUNCTION_COMPOSITE_INSTANCE_OF.apply( composite ).module().instance().newValueFromSerializedState( (Class<Object>) type, value );
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/configuration/Configuration.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/configuration/Configuration.java b/core/api/src/main/java/org/apache/zest/api/configuration/Configuration.java
index 9f6acc0..cdcf0f3 100644
--- a/core/api/src/main/java/org/apache/zest/api/configuration/Configuration.java
+++ b/core/api/src/main/java/org/apache/zest/api/configuration/Configuration.java
@@ -252,7 +252,7 @@ public interface Configuration<T>
)
throws InstantiationException
{
- Module module = api.moduleOf( serviceComposite );
+ Module module = api.moduleOf( serviceComposite ).instance();
Usecase usecase = UsecaseBuilder.newUsecase( "Configuration:" + me.identity().get() );
UnitOfWork buildUow = module.unitOfWorkFactory().newUnitOfWork( usecase );
@@ -384,7 +384,7 @@ public interface Configuration<T>
InputStream asStream = getResource( compositeType, resourceName );
if( asStream != null )
{
- V configObject = serializerRef.get().deserialize( configType, asStream );
+ V configObject = serializerRef.get().deserialize( uow.module(), configType, asStream );
return uow.toEntity( configType, configObject );
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/property/PropertyDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/property/PropertyDescriptor.java b/core/api/src/main/java/org/apache/zest/api/property/PropertyDescriptor.java
index 649b1fc..e0ad5d6 100644
--- a/core/api/src/main/java/org/apache/zest/api/property/PropertyDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/property/PropertyDescriptor.java
@@ -19,6 +19,7 @@ import java.lang.reflect.Type;
import org.apache.zest.api.common.QualifiedName;
import org.apache.zest.api.structure.MetaInfoHolder;
import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.type.ValueType;
/**
@@ -48,7 +49,7 @@ public interface PropertyDescriptor extends MetaInfoHolder
AccessibleObject accessor();
- Object initialValue( Module module );
+ Object initialValue( ModuleDescriptor module );
ValueType valueType();
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/Layer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/Layer.java b/core/api/src/main/java/org/apache/zest/api/structure/Layer.java
index cf4db21..3df1b82 100644
--- a/core/api/src/main/java/org/apache/zest/api/structure/Layer.java
+++ b/core/api/src/main/java/org/apache/zest/api/structure/Layer.java
@@ -30,5 +30,9 @@ public interface Layer
*/
String name();
+ Application application();
+
Stream<? extends Module> modules();
+
+ LayerDescriptor descriptor();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/LayerDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/LayerDescriptor.java b/core/api/src/main/java/org/apache/zest/api/structure/LayerDescriptor.java
index 812b13f..53b552d 100644
--- a/core/api/src/main/java/org/apache/zest/api/structure/LayerDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/structure/LayerDescriptor.java
@@ -13,6 +13,14 @@
*/
package org.apache.zest.api.structure;
+import java.util.stream.Stream;
+import org.apache.zest.api.common.Visibility;
+import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.composite.TransientDescriptor;
+import org.apache.zest.api.entity.EntityDescriptor;
+import org.apache.zest.api.object.ObjectDescriptor;
+import org.apache.zest.api.value.ValueDescriptor;
+
/**
* Layer Descriptor.
*/
@@ -24,8 +32,20 @@ public interface LayerDescriptor
*/
String name();
+ Layer instance();
+
/**
* @return Layers used by this Layer
*/
UsedLayersDescriptor usedLayers();
+
+ Stream<? extends ObjectDescriptor> visibleObjects( Visibility visibility );
+
+ Stream<? extends TransientDescriptor> visibleTransients( Visibility visibility );
+
+ Stream<? extends EntityDescriptor> visibleEntities( Visibility visibility );
+
+ Stream<? extends ValueDescriptor> visibleValues( Visibility visibility );
+
+ Stream<? extends ModelDescriptor> visibleServices( Visibility visibility );
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/Module.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/Module.java b/core/api/src/main/java/org/apache/zest/api/structure/Module.java
index 38d8803..d60f1db 100644
--- a/core/api/src/main/java/org/apache/zest/api/structure/Module.java
+++ b/core/api/src/main/java/org/apache/zest/api/structure/Module.java
@@ -50,50 +50,14 @@ public interface Module
*/
String name();
- /**
- * @return the Module's ClassLoader
- */
- ClassLoader classLoader();
-
- /**
- * @param typeName name of a transient composite type
- *
- * @return the descriptor for a transient composite or null if the class could not be found or the transient composite is not visible
- */
- TransientDescriptor transientDescriptor( String typeName );
-
- /**
- * @param typeName name of an entity composite type
- *
- * @return the descriptor for an entity composite or null if the class could not be found or the entity composite is not visible
- */
- EntityDescriptor entityDescriptor( String typeName );
+ ModuleDescriptor descriptor();
/**
- * @param typeName name of an object type
*
- * @return the descriptor for an object or null if the class could not be found or the object is not visible
+ * @return the Layer that the Module is declared in.
*/
- ObjectDescriptor objectDescriptor( String typeName );
-
- /**
- * @param typeName name of a value composite type
- *
- * @return the descriptor for a value composite or null if the class could not be found or the value composite is not visible
- */
- ValueDescriptor valueDescriptor( String typeName );
-
- Stream<? extends TransientDescriptor> transientComposites();
-
- Stream<? extends ValueDescriptor> valueComposites();
-
- Stream<? extends ServiceDescriptor> serviceComposites();
-
- Stream<? extends EntityDescriptor> entityComposites();
-
- Stream<? extends ImportedServiceDescriptor> importedServices();
+ LayerDescriptor layer();
- Stream<? extends ObjectDescriptor> objects();
UnitOfWorkFactory unitOfWorkFactory();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/ModuleDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/ModuleDescriptor.java b/core/api/src/main/java/org/apache/zest/api/structure/ModuleDescriptor.java
index 045a639..06b2169 100644
--- a/core/api/src/main/java/org/apache/zest/api/structure/ModuleDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/structure/ModuleDescriptor.java
@@ -1,23 +1,97 @@
/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*
*/
package org.apache.zest.api.structure;
+import java.util.stream.Stream;
+import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.composite.TransientDescriptor;
+import org.apache.zest.api.entity.EntityDescriptor;
+import org.apache.zest.api.object.ObjectDescriptor;
+import org.apache.zest.api.service.ImportedServiceDescriptor;
+import org.apache.zest.api.service.ServiceDescriptor;
+import org.apache.zest.api.value.ValueDescriptor;
+
/**
* Module Descriptor.
*/
public interface ModuleDescriptor
{
String name();
+
+ LayerDescriptor layer();
+
+ /**
+ * @return the Module's ClassLoader
+ */
+ ClassLoader classLoader();
+
+ /**
+ * @param typeName name of a transient composite type
+ *
+ * @return the descriptor for a transient composite or null if the class could not be found or the transient composite is not visible
+ */
+ TransientDescriptor transientDescriptor( String typeName );
+
+ /**
+ * @param typeName name of an entity composite type
+ *
+ * @return the descriptor for an entity composite or null if the class could not be found or the entity composite is not visible
+ */
+ EntityDescriptor entityDescriptor( String typeName );
+
+ /**
+ * @param typeName name of an object type
+ *
+ * @return the descriptor for an object or null if the class could not be found or the object is not visible
+ */
+ ObjectDescriptor objectDescriptor( String typeName );
+
+ /**
+ * @param typeName name of a value composite type
+ *
+ * @return the descriptor for a value composite or null if the class could not be found or the value composite is not visible
+ */
+ ValueDescriptor valueDescriptor( String typeName );
+
+ Stream<? extends TransientDescriptor> findVisibleTransientTypes();
+
+ Stream<? extends ValueDescriptor> findVisibleValueTypes();
+
+ Stream<? extends EntityDescriptor> findVisibleEntityTypes();
+
+ Stream<? extends ObjectDescriptor> findVisibleObjectTypes();
+
+ Stream<? extends TransientDescriptor> transientComposites();
+
+ Stream<? extends ValueDescriptor> valueComposites();
+
+ Stream<? extends EntityDescriptor> entityComposites();
+
+ Stream<? extends ObjectDescriptor> objects();
+
+ Stream<? extends ImportedServiceDescriptor> importedServices();
+
+ Stream<? extends ServiceDescriptor> serviceComposites();
+
+ Module instance();
+
+ TypeLookup typeLookup();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/TypeLookup.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/TypeLookup.java b/core/api/src/main/java/org/apache/zest/api/structure/TypeLookup.java
new file mode 100644
index 0000000..e1c1905
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/structure/TypeLookup.java
@@ -0,0 +1,175 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.zest.api.structure;
+
+import java.lang.reflect.Type;
+import java.util.List;
+import java.util.stream.Stream;
+import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.composite.TransientDescriptor;
+import org.apache.zest.api.entity.EntityDescriptor;
+import org.apache.zest.api.object.ObjectDescriptor;
+import org.apache.zest.api.service.ServiceReference;
+import org.apache.zest.api.value.ValueDescriptor;
+
+public interface TypeLookup
+{
+ /**
+ * Lookup first Object Model matching the given Type.
+ *
+ * <p>First, if Object Models exactly match the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>exact</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Second, if Object Models match a type assignable to the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>assignable</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return First matching Object Model
+ */
+ ObjectDescriptor lookupObjectModel( Class<?> type );
+
+ /**
+ * Lookup first Transient Model matching the given Type.
+ *
+ * <p>First, if Transient Models exactly match the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>exact</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Second, if Transient Models match a type assignable to the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>assignable</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return First matching Transient Model
+ */
+ TransientDescriptor lookupTransientModel( Class<?> type );
+
+ /**
+ * Lookup first Value Model matching the given Type.
+ *
+ * <p>First, if Value Models exactly match the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>exact</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Second, if Value Models match a type assignable to the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>assignable</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return First matching Value Model
+ */
+ ValueDescriptor lookupValueModel( Class<?> type );
+
+ /**
+ * Lookup first Entity Model matching the given Type.
+ *
+ * <p>First, if Entity Models exactly match the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>exact</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Second, if Entity Models match a type assignable to the given type, the closest one (Visibility then Assembly order) is returned.
+ * Multiple <b>assignable</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * <p><b>Should be used for creational use cases only.</b> For non-creational use cases see
+ * {@link #lookupEntityModels(Class)}.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return First matching Entity Model
+ */
+ EntityDescriptor lookupEntityModel( Class<?> type );
+
+ /**
+ * Lookup all Entity Models matching the given Type.
+ *
+ * <p>Returned Iterable contains, in order, Entity Models that: </p>
+ *
+ * <ul>
+ * <li>exactly match the given type, in Visibility then Assembly order ;</li>
+ * <li>match a type assignable to the given type, in Visibility then Assembly order.</li>
+ * </ul>
+ *
+ * <p>Multiple <b>exact</b> matches with the same Visibility are <b>forbidden</b> and result in an AmbiguousTypeException.</p>
+ * <p>Multiple <b>assignable</b> matches are <b>allowed</b> to enable polymorphic fetches and queries.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * <p><b>Should be used for non-creational use cases only.</b> For creational use cases see
+ * {@link #lookupEntityModel(Class)}.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return All matching Entity Models
+ */
+ Iterable<? extends EntityDescriptor> lookupEntityModels( Class<?> type );
+
+ /**
+ * Lookup first ServiceDescriptor/ImportedServiceDescriptor matching the given Type.
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * <p>See {@link #lookupServiceModels(Type)}.</p>
+ *
+ * @param serviceType Looked up Type
+ *
+ * @return First matching Service
+ */
+ ModelDescriptor lookupServiceModel( Type serviceType );
+
+ /**
+ * Lookup all ServiceDescriptors matching the given Type.
+ *
+ * <p>Returned List contains, in order, ServiceReferences that: </p>
+ *
+ * <ul>
+ * <li>exactly match the given type, in Visibility then Assembly order ;</li>
+ * <li>match a type assignable to the given type, in Visibility then Assembly order.</li>
+ * </ul>
+ *
+ * <p>Multiple <b>exact</b> matches with the same Visibility are <b>allowed</b> to enable polymorphic lookup/injection.</p>
+ * <p>Multiple <b>assignable</b> matches with the same Visibility are <b>allowed</b> for the very same reason.</p>
+ *
+ * <p>Type lookup is done lazily and cached.</p>
+ *
+ * @param type Looked up Type
+ *
+ * @return All matching ServiceReferences
+ */
+ List<? extends ModelDescriptor> lookupServiceModels( Type type );
+
+ Stream<? extends ObjectDescriptor> allObjects();
+
+ Stream<? extends TransientDescriptor> allTransients();
+
+ Stream<? extends ValueDescriptor> allValues();
+
+ Stream<? extends EntityDescriptor> allEntities();
+
+ Stream<? extends ModelDescriptor> allServices();
+
+ Stream<Class<?>> allVisibleObjects();
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/structure/UsedLayersDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/structure/UsedLayersDescriptor.java b/core/api/src/main/java/org/apache/zest/api/structure/UsedLayersDescriptor.java
index 98e70d5..08c5aed 100644
--- a/core/api/src/main/java/org/apache/zest/api/structure/UsedLayersDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/structure/UsedLayersDescriptor.java
@@ -14,10 +14,12 @@
package org.apache.zest.api.structure;
+import java.util.stream.Stream;
+
/**
* Used Layers Descriptor.
*/
public interface UsedLayersDescriptor
{
- Iterable<? extends LayerDescriptor> layers();
+ Stream<? extends LayerDescriptor> layers();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/type/HasTypes.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/type/HasTypes.java b/core/api/src/main/java/org/apache/zest/api/type/HasTypes.java
index 0c3a0ac..73bc25e 100644
--- a/core/api/src/main/java/org/apache/zest/api/type/HasTypes.java
+++ b/core/api/src/main/java/org/apache/zest/api/type/HasTypes.java
@@ -20,6 +20,7 @@ package org.apache.zest.api.type;
import java.lang.reflect.Type;
import java.util.stream.Stream;
+import org.apache.zest.api.util.Classes;
/**
* Has types.
@@ -30,6 +31,7 @@ public interface HasTypes
default boolean hasType( Type type )
{
- return types().anyMatch( type::equals );
+ Class<?> rawType = Classes.RAW_CLASS.apply( type );
+ return types().map( Classes.RAW_CLASS ).anyMatch( rawType::isAssignableFrom );
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/unitofwork/EntityTypeNotFoundException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/unitofwork/EntityTypeNotFoundException.java b/core/api/src/main/java/org/apache/zest/api/unitofwork/EntityTypeNotFoundException.java
index b51bc8c..e35d1b3 100644
--- a/core/api/src/main/java/org/apache/zest/api/unitofwork/EntityTypeNotFoundException.java
+++ b/core/api/src/main/java/org/apache/zest/api/unitofwork/EntityTypeNotFoundException.java
@@ -17,8 +17,8 @@ package org.apache.zest.api.unitofwork;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-
-import static java.util.stream.StreamSupport.stream;
+import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.structure.ModuleDescriptor;
/**
* Zest exception to be thrown in case that an entity composite
@@ -29,7 +29,7 @@ public class EntityTypeNotFoundException
{
private final String compositeType;
- public EntityTypeNotFoundException( String entityType, String moduleName, Stream<String> visibility )
+ private EntityTypeNotFoundException( String entityType, String moduleName, Stream<String> visibility )
{
super( "Could not find an EntityComposite of type " + entityType + " in module [" + moduleName + "].\n" +
"\tThe following entity types are visible:\n" + visibility.collect( Collectors.joining( "\n" ) ) );
@@ -40,4 +40,17 @@ public class EntityTypeNotFoundException
{
return compositeType;
}
+
+ public static EntityTypeNotFoundException create( String type, ModuleDescriptor module )
+ {
+ return new EntityTypeNotFoundException( type,
+ module.name(),
+ module.findVisibleEntityTypes()
+ .map( item -> item.types()
+ .iterator()
+ .next()
+ .getName() + "[" + item.module()
+ .name() + "]" )
+ );
+ }
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/unitofwork/UnitOfWork.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/unitofwork/UnitOfWork.java b/core/api/src/main/java/org/apache/zest/api/unitofwork/UnitOfWork.java
index b218e6d..2a66379 100644
--- a/core/api/src/main/java/org/apache/zest/api/unitofwork/UnitOfWork.java
+++ b/core/api/src/main/java/org/apache/zest/api/unitofwork/UnitOfWork.java
@@ -28,6 +28,7 @@ import org.apache.zest.api.property.PropertyDescriptor;
import org.apache.zest.api.query.Query;
import org.apache.zest.api.query.QueryBuilder;
import org.apache.zest.api.structure.MetaInfoHolder;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.usecase.Usecase;
/**
@@ -207,7 +208,8 @@ public interface UnitOfWork extends MetaInfoHolder, AutoCloseable
Function<PropertyDescriptor, Object> propertyFunction,
Function<AssociationDescriptor, EntityReference> associationFunction,
Function<AssociationDescriptor, Iterable<EntityReference>> manyAssociationFunction,
- Function<AssociationDescriptor, Map<String, EntityReference>> namedAssociationFunction )
+ Function<AssociationDescriptor, Map<String, EntityReference>> namedAssociationFunction
+ )
throws EntityTypeNotFoundException, AmbiguousTypeException;
/**
@@ -234,7 +236,8 @@ public interface UnitOfWork extends MetaInfoHolder, AutoCloseable
Function<PropertyDescriptor, Object> propertyFunction,
Function<AssociationDescriptor, EntityReference> associationFunction,
Function<AssociationDescriptor, Iterable<EntityReference>> manyAssociationFunction,
- Function<AssociationDescriptor, Map<String, EntityReference>> namedAssociationFunction )
+ Function<AssociationDescriptor, Map<String, EntityReference>> namedAssociationFunction
+ )
throws EntityTypeNotFoundException, AmbiguousTypeException;
/**
@@ -431,4 +434,12 @@ public interface UnitOfWork extends MetaInfoHolder, AutoCloseable
* @return The new or updated Entity
*/
<T extends Identity> T toEntity( Class<T> primaryType, T valueComposite );
+
+ /**
+ * The Module of the UnitOfWork is defined as the Module the UnitOfWorkFactory belonged to from where the
+ * UnitOfWork was created.
+ *
+ * @return the Module where this UnitOfWork was initialized.
+ */
+ ModuleDescriptor module();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/value/ValueBuilderTemplate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/value/ValueBuilderTemplate.java b/core/api/src/main/java/org/apache/zest/api/value/ValueBuilderTemplate.java
index 5860f4b..033db11 100644
--- a/core/api/src/main/java/org/apache/zest/api/value/ValueBuilderTemplate.java
+++ b/core/api/src/main/java/org/apache/zest/api/value/ValueBuilderTemplate.java
@@ -19,6 +19,7 @@
package org.apache.zest.api.value;
import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
/**
* Builder template for Values.
@@ -34,9 +35,9 @@ public abstract class ValueBuilderTemplate<T>
protected abstract void build( T prototype );
- public T newInstance( Module module )
+ public T newInstance( ModuleDescriptor module )
{
- ValueBuilder<T> builder = module.newValueBuilder( type );
+ ValueBuilder<T> builder = module.instance().newValueBuilder( type );
build( builder.prototype() );
return builder.newInstance();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/main/java/org/apache/zest/api/value/ValueDeserializer.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/value/ValueDeserializer.java b/core/api/src/main/java/org/apache/zest/api/value/ValueDeserializer.java
index cae79d6..f28af3f 100644
--- a/core/api/src/main/java/org/apache/zest/api/value/ValueDeserializer.java
+++ b/core/api/src/main/java/org/apache/zest/api/value/ValueDeserializer.java
@@ -16,55 +16,55 @@
package org.apache.zest.api.value;
import java.io.InputStream;
-import java.util.function.BiFunction;
import java.util.function.Function;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.type.ValueType;
/**
* Use a ValueDeserializer to create new values instances from serialized state.
*
* <p>
- * Serialized state must be one of:
+ * Serialized state must be one of:
* </p>
* <ul>
- * <li>a ValueComposite,</li>
- * <li>an EntityReference,</li>
- * <li>a Collection,</li>
- * <li>a Map,</li>
- * <li>a Plain Value.</li>
+ * <li>a ValueComposite,</li>
+ * <li>an EntityReference,</li>
+ * <li>a Collection,</li>
+ * <li>a Map,</li>
+ * <li>a Plain Value.</li>
* </ul>
* <p>
- * Nested plain values, EntityReferences, Collections, Maps, ValueComposites are supported.
- * EntityReferences are deserialized as their identity string.
+ * Nested plain values, EntityReferences, Collections, Maps, ValueComposites are supported.
+ * EntityReferences are deserialized as their identity string.
* </p>
* <p>
- * Plain values can be one of:
+ * Plain values can be one of:
* </p>
* <ul>
- * <li>String,</li>
- * <li>Character or char,</li>
- * <li>Boolean or boolean,</li>
- * <li>Integer or int,</li>
- * <li>Long or long,</li>
- * <li>Short or short,</li>
- * <li>Byte or byte,</li>
- * <li>Float or float,</li>
- * <li>Double or double,</li>
- * <li>BigInteger,</li>
- * <li>BigDecimal,</li>
- * <li>Date,</li>
- * <li>DateTime (JodaTime),</li>
- * <li>LocalDateTime (JodaTime),</li>
- * <li>LocalDate (JodaTime).</li>
+ * <li>String,</li>
+ * <li>Character or char,</li>
+ * <li>Boolean or boolean,</li>
+ * <li>Integer or int,</li>
+ * <li>Long or long,</li>
+ * <li>Short or short,</li>
+ * <li>Byte or byte,</li>
+ * <li>Float or float,</li>
+ * <li>Double or double,</li>
+ * <li>BigInteger,</li>
+ * <li>BigDecimal,</li>
+ * <li>Date,</li>
+ * <li>DateTime (JodaTime),</li>
+ * <li>LocalDateTime (JodaTime),</li>
+ * <li>LocalDate (JodaTime).</li>
* </ul>
* <p>
- * Values of unknown types and all arrays are considered as {@link java.io.Serializable} and by so are deserialized
- * from base64 encoded bytes using pure Java serialization. If it happens that the input is invalid, a
- * ValueSerializationException is thrown.
+ * Values of unknown types and all arrays are considered as {@link java.io.Serializable} and by so are deserialized
+ * from base64 encoded bytes using pure Java serialization. If it happens that the input is invalid, a
+ * ValueSerializationException is thrown.
* </p>
* <p>
- * Having type information in the serialized payload allows to keep actual ValueComposite types and by so
- * circumvent {@link org.apache.zest.api.composite.AmbiguousTypeException} when deserializing.
+ * Having type information in the serialized payload allows to keep actual ValueComposite types and by so
+ * circumvent {@link org.apache.zest.api.composite.AmbiguousTypeException} when deserializing.
* </p>
*/
public interface ValueDeserializer
@@ -76,10 +76,11 @@ public interface ValueDeserializer
* <p>The returned Function may throw {@link ValueSerializationException}.</p>
*
* @param type the value type
- * @param <T> the parametrized function return type
+ * @param <T> the parametrized function return type
+ *
* @return a deserialization function
*/
- <T> Function<String, T> deserialize( Class<T> type );
+ <T> Function<String, T> deserialize( ModuleDescriptor module, Class<T> type );
/**
* Factory method for a typed deserialize function.
@@ -87,10 +88,11 @@ public interface ValueDeserializer
* <p>The returned Function may throw {@link ValueSerializationException}.</p>
*
* @param valueType the value type
- * @param <T> the parametrized function return type
+ * @param <T> the parametrized function return type
+ *
* @return a deserialization function
*/
- <T> Function<String, T> deserialize( ValueType valueType );
+ <T> Function<String, T> deserialize( ModuleDescriptor module, ValueType valueType );
/**
* Factory method for an untyped deserialize function.
@@ -100,53 +102,61 @@ public interface ValueDeserializer
* @param <T> the parametrized function return type
* @return a deserialization function
*/
- <T> BiFunction<ValueType, String, T> deserialize();
+// <T> BiFunction<ValueType, String, T> deserialize();
/**
* Deserialize a value from a state.
*
- * @param <T> the parametrized returned type
- * @param type the value type
+ * @param <T> the parametrized returned type
+ * @param type the value type
* @param input the state
+ *
* @return the value
+ *
* @throws ValueSerializationException if the deserialization failed
*/
- <T> T deserialize( Class<?> type, String input )
+ <T> T deserialize( ModuleDescriptor module, Class<?> type, String input )
throws ValueSerializationException;
/**
* Deserialize a value from a state.
*
- * @param <T> the parametrized returned type
+ * @param <T> the parametrized returned type
* @param valueType the value type
- * @param input the state
+ * @param input the state
+ *
* @return the value
+ *
* @throws ValueSerializationException if the deserialization failed
*/
- <T> T deserialize( ValueType valueType, String input )
+ <T> T deserialize( ModuleDescriptor module, ValueType valueType, String input )
throws ValueSerializationException;
/**
* Deserialize a value from a state.
*
- * @param <T> the parametrized returned type
- * @param type the value type
+ * @param <T> the parametrized returned type
+ * @param type the value type
* @param input the state stream
+ *
* @return the value
+ *
* @throws ValueSerializationException if the deserialization failed
*/
- <T> T deserialize( Class<?> type, InputStream input )
+ <T> T deserialize( ModuleDescriptor module, Class<?> type, InputStream input )
throws ValueSerializationException;
/**
* Deserialize a value from a state.
*
- * @param <T> the parametrized returned type
+ * @param <T> the parametrized returned type
* @param valueType the value type
- * @param input the state stream
+ * @param input the state stream
+ *
* @return the value
+ *
* @throws ValueSerializationException if the deserialization failed
*/
- <T> T deserialize( ValueType valueType, InputStream input )
+ <T> T deserialize( ModuleDescriptor module, ValueType valueType, InputStream input )
throws ValueSerializationException;
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/configuration/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/configuration/ConfigurationTest.java b/core/api/src/test/java/org/apache/zest/api/configuration/ConfigurationTest.java
index 71cbb0f..69ba438 100644
--- a/core/api/src/test/java/org/apache/zest/api/configuration/ConfigurationTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/configuration/ConfigurationTest.java
@@ -49,7 +49,7 @@ public class ConfigurationTest extends AbstractZestTest
public void testConfiguration()
throws Exception
{
- MyService service = module.findService( MyService.class ).get();
+ MyService service = serviceFinder.findService( MyService.class ).get();
PersonDetails details = service.details();
assertThat(details.name().get(), equalTo( "Niclas" ) );
assertThat(details.address().get().street1().get(), equalTo( "Henan Lu 555" ) );
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/configuration/DeclareConfigurationDefaultsTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/configuration/DeclareConfigurationDefaultsTest.java b/core/api/src/test/java/org/apache/zest/api/configuration/DeclareConfigurationDefaultsTest.java
index bbf81e2..1e00a4a 100644
--- a/core/api/src/test/java/org/apache/zest/api/configuration/DeclareConfigurationDefaultsTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/configuration/DeclareConfigurationDefaultsTest.java
@@ -76,7 +76,7 @@ public class DeclareConfigurationDefaultsTest
@Test
public void testConfigurationDefaults()
{
- FooServiceComposite fooService = module.findService( FooServiceComposite.class ).get();
+ FooServiceComposite fooService = serviceFinder.findService( FooServiceComposite.class ).get();
Assert.assertEquals( "bar", fooService.configuredFoo() );
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/dataset/iterable/IterableDataSetTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/dataset/iterable/IterableDataSetTest.java b/core/api/src/test/java/org/apache/zest/api/dataset/iterable/IterableDataSetTest.java
index 675a05e..2c2328a 100644
--- a/core/api/src/test/java/org/apache/zest/api/dataset/iterable/IterableDataSetTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/dataset/iterable/IterableDataSetTest.java
@@ -51,7 +51,7 @@ public class IterableDataSetTest
private TestValue newTestValue( String name )
{
- return module.newValueFromSerializedState( TestValue.class, "{name:'" + name + "'}" );
+ return valueBuilderFactory.newValueFromSerializedState( TestValue.class, "{name:'" + name + "'}" );
}
interface TestValue
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/mixin/decoratorMixin/DecoratorMixinTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/mixin/decoratorMixin/DecoratorMixinTest.java b/core/api/src/test/java/org/apache/zest/api/mixin/decoratorMixin/DecoratorMixinTest.java
index 38e7a84..7160348 100644
--- a/core/api/src/test/java/org/apache/zest/api/mixin/decoratorMixin/DecoratorMixinTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/mixin/decoratorMixin/DecoratorMixinTest.java
@@ -76,7 +76,7 @@ public class DecoratorMixinTest extends AbstractZestTest
// START SNIPPET: create
public View1 createView1( FooModel model )
{
- TransientBuilder<View1> builder = module.newTransientBuilder( View1.class );
+ TransientBuilder<View1> builder = transientBuilderFactory.newTransientBuilder( View1.class );
builder.use( model );
return builder.newInstance();
}
@@ -84,7 +84,7 @@ public class DecoratorMixinTest extends AbstractZestTest
public View2 createView2( FooModel model )
{
- TransientBuilder<View2> builder = module.newTransientBuilder( View2.class );
+ TransientBuilder<View2> builder = transientBuilderFactory.newTransientBuilder( View2.class );
builder.use( model );
return builder.newInstance();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/object/ObjectBuilderTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/object/ObjectBuilderTest.java b/core/api/src/test/java/org/apache/zest/api/object/ObjectBuilderTest.java
index bd6a8b0..4331261 100644
--- a/core/api/src/test/java/org/apache/zest/api/object/ObjectBuilderTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/object/ObjectBuilderTest.java
@@ -37,7 +37,7 @@ public class ObjectBuilderTest
@Test
public void testNotProvidedUses()
{
- A a = module.newObject( A.class );
+ A a = objectFactory.newObject( A.class );
assertNotNull( a );
assertNotNull( a.b );
assertNotNull( a.b.c );
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/unitofwork/UnitOfWorkTemplateTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/unitofwork/UnitOfWorkTemplateTest.java b/core/api/src/test/java/org/apache/zest/api/unitofwork/UnitOfWorkTemplateTest.java
index 9f64100..ff356d4 100644
--- a/core/api/src/test/java/org/apache/zest/api/unitofwork/UnitOfWorkTemplateTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/unitofwork/UnitOfWorkTemplateTest.java
@@ -58,11 +58,11 @@ public class UnitOfWorkTemplateTest
{
prototype.name().set( "Rickard" );
}
- }.newInstance( module );
+ }.newInstance( module.instance() );
return null;
}
- }.withModule( module );
+ }.withModule( module.instance() );
}
interface TestEntity
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/value/DocumentationSupport.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/value/DocumentationSupport.java b/core/api/src/test/java/org/apache/zest/api/value/DocumentationSupport.java
index e85e2fc..9406eb1 100644
--- a/core/api/src/test/java/org/apache/zest/api/value/DocumentationSupport.java
+++ b/core/api/src/test/java/org/apache/zest/api/value/DocumentationSupport.java
@@ -59,12 +59,6 @@ public class DocumentationSupport
extends AbstractZestTest
{
- @Before
- public void injectToThis()
- {
- module.injectTo( this );
- }
-
// START SNIPPET: default
// START SNIPPET: service
public interface SomeValue // (1)
@@ -90,9 +84,9 @@ public class DocumentationSupport
// START SNIPPET: default
public void defaultValueSerialization()
{
- SomeValue someValue = someNewValueInstance( module ); // (3)
+ SomeValue someValue = someNewValueInstance(); // (3)
String json = someValue.toString(); // (4)
- SomeValue someNewValue = module.newValueFromSerializedState( SomeValue.class, json ); // (5)
+ SomeValue someNewValue = valueBuilderFactory.newValueFromSerializedState( SomeValue.class, json ); // (5)
// END SNIPPET: default
assertThat( json, equalTo( "{\"foo\":\"bar\"}" ) );
@@ -113,9 +107,9 @@ public class DocumentationSupport
// START SNIPPET: service
public void assembledDefaultServiceSerialization()
{
- SomeValue someValue = someNewValueInstance( module ); // (5)
+ SomeValue someValue = someNewValueInstance(); // (5)
String json = valueSerializer.serialize( someValue ); // (6)
- SomeValue someNewValue = valueDeserializer.deserialize( SomeValue.class, json ); // (7)
+ SomeValue someNewValue = valueDeserializer.deserialize( module, SomeValue.class, json ); // (7)
// END SNIPPET: service
assertThat( json, equalTo( "{\"foo\":\"bar\"}" ) );
@@ -157,7 +151,7 @@ public class DocumentationSupport
InputStream input = sourceStream; // Eg. reading incoming JSON
// (4)
- List<AcmeValue> values = valueDeserializer.deserialize( CollectionType.listOf( AcmeValue.class ), input );
+ List<AcmeValue> values = valueDeserializer.deserialize( module, CollectionType.listOf( AcmeValue.class ), input );
// END SNIPPET: stream
assertThat( values, equalTo( dataSource ) );
@@ -197,7 +191,7 @@ public class DocumentationSupport
List<AcmeValue> values = new ArrayList<AcmeValue>();
// (5)
- Function<String, AcmeValue> deserialize = valueDeserializer.deserialize( AcmeValue.class );
+ Function<String, AcmeValue> deserialize = valueDeserializer.deserialize( module, AcmeValue.class );
// Deserialization of a collection of AcmeValue from a String.
// One serialized AcmeValue per line.
@@ -255,7 +249,7 @@ public class DocumentationSupport
try
{
Module valuesModule = app.findModule( "SINGLE-Layer", "VALUES-Module" );
- SomeValue someValue = someNewValueInstance( valuesModule );
+ SomeValue someValue = someNewValueInstance();
Module servicesModule = app.findModule( "SINGLE-Layer", "SERVICES-Module" );
ValueSerialization valueSerialization = servicesModule.findService( ValueSerialization.class ).get();
@@ -263,7 +257,7 @@ public class DocumentationSupport
String json = valueSerialization.serialize( someValue );
assertThat( json, equalTo( "{\"foo\":\"bar\"}" ) );
- SomeValue someNewValue = valueSerialization.deserialize( SomeValue.class, json );
+ SomeValue someNewValue = valueSerialization.deserialize( module, SomeValue.class, json );
assertThat( someNewValue, equalTo( someValue ) );
}
finally
@@ -272,9 +266,9 @@ public class DocumentationSupport
}
}
- private SomeValue someNewValueInstance( Module module )
+ private SomeValue someNewValueInstance( )
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
builder.prototype().foo().set( "bar" );
return builder.newInstance();
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/api/src/test/java/org/apache/zest/api/value/ValueCompositeTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/apache/zest/api/value/ValueCompositeTest.java b/core/api/src/test/java/org/apache/zest/api/value/ValueCompositeTest.java
index b5499c4..8d0bb14 100644
--- a/core/api/src/test/java/org/apache/zest/api/value/ValueCompositeTest.java
+++ b/core/api/src/test/java/org/apache/zest/api/value/ValueCompositeTest.java
@@ -57,7 +57,7 @@ public class ValueCompositeTest
@Test( expected = IllegalStateException.class )
public void testImmutabilityOfValueComposite()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue some = builder.prototype();
some.other().set( "test" );
some = builder.newInstance();
@@ -67,7 +67,7 @@ public class ValueCompositeTest
@Test
public void testCreationOfValueComposite()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue some = builder.prototype();
some.other().set( "test" );
builder.newInstance();
@@ -79,7 +79,7 @@ public class ValueCompositeTest
@Test
public void testEqualityOfValueComposite()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue prototype = builder.prototype();
prototype.other().set( "test" );
SomeValue instance = builder.newInstance();
@@ -91,7 +91,7 @@ public class ValueCompositeTest
@Test
public void testHashcodeOfValueComposite()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue prototype = builder.prototype();
prototype.other().set( "test" );
SomeValue instance = builder.newInstance();
@@ -103,11 +103,11 @@ public class ValueCompositeTest
@Test
public void testModifyValue()
{
- ValueBuilder<AnotherValue> anotherBuilder = module.newValueBuilder( AnotherValue.class );
+ ValueBuilder<AnotherValue> anotherBuilder = valueBuilderFactory.newValueBuilder( AnotherValue.class );
anotherBuilder.prototype().val1().set( "Val1" );
AnotherValue anotherValue = anotherBuilder.newInstance();
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue prototype = builder.prototype();
prototype.some().set( "foo" );
prototype.other().set( "test" );
@@ -118,7 +118,7 @@ public class ValueCompositeTest
assertThat( "List has value blah", instance.xyzzyList().get().get( 0 ), equalTo( "blah" ) );
// Modify value
- builder = module.newValueBuilderWithPrototype( instance );
+ builder = valueBuilderFactory.newValueBuilderWithPrototype( instance );
builder.prototype().some().set( "bar" );
instance = builder.newInstance();
@@ -127,7 +127,7 @@ public class ValueCompositeTest
assertThat( "AnotherValue.val1 has value Val1", instance.another().get().val1().get(), equalTo( "Val1" ) );
// Modify value again using method 2
- builder = module.newValueBuilderWithPrototype( instance );
+ builder = valueBuilderFactory.newValueBuilderWithPrototype( instance );
builder.prototype().other().set( "test2" );
instance = builder.newInstance();
@@ -138,25 +138,25 @@ public class ValueCompositeTest
@Test( expected = ConstraintViolationException.class )
public void givenValueWhenModifyToIncorrectValueThenThrowConstraintException()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
SomeValue prototype = builder.prototype();
prototype.some().set( "foo" );
SomeValue instance = builder.newInstance();
- builder = module.newValueBuilderWithPrototype( instance );
+ builder = valueBuilderFactory.newValueBuilderWithPrototype( instance );
builder.prototype().some().set( "123456" );
}
@Test
public void givenValueWithListOfValueWhenPrototypeThenListedValuesAreEditable()
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
- builder.prototype().anotherList().get().add( module.newValue( AnotherValue.class ) );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
+ builder.prototype().anotherList().get().add( valueBuilderFactory.newValue( AnotherValue.class ) );
SomeValue some = builder.newInstance();
- builder = module.newValueBuilderWithPrototype( some );
+ builder = valueBuilderFactory.newValueBuilderWithPrototype( some );
builder.prototype().anotherList().get().get( 0 ).val1().set( "Foo" );
- builder.prototype().anotherList().get().add( module.newValue( AnotherValue.class ) );
+ builder.prototype().anotherList().get().add( valueBuilderFactory.newValue( AnotherValue.class ) );
some = builder.newInstance();
assertThat( "Val1 has been set", some.anotherList().get().get( 0 ).val1().get(), equalTo( "Foo" ) );
@@ -176,9 +176,9 @@ public class ValueCompositeTest
public void givenEntityWhenUpdateValueThenValueIsSet()
throws UnitOfWorkCompletionException
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
- builder.prototype().anotherList().get().add( module.newValue( AnotherValue.class ) );
- ValueBuilder<AnotherValue> valueBuilder = module.newValueBuilder( AnotherValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
+ builder.prototype().anotherList().get().add( valueBuilderFactory.newValue( AnotherValue.class ) );
+ ValueBuilder<AnotherValue> valueBuilder = valueBuilderFactory.newValueBuilder( AnotherValue.class );
valueBuilder.prototype().val1().set( "Foo" );
builder.prototype().another().set( valueBuilder.newInstance() );
builder.prototype().number().set( 42L );
@@ -205,9 +205,9 @@ public class ValueCompositeTest
public void givenValueWithAssociationsWhenNewUoWThenCanRead()
throws UnitOfWorkCompletionException
{
- ValueBuilder<SomeValue> builder = module.newValueBuilder( SomeValue.class );
- builder.prototype().anotherList().get().add( module.newValue( AnotherValue.class ) );
- ValueBuilder<AnotherValue> valueBuilder = module.newValueBuilder( AnotherValue.class );
+ ValueBuilder<SomeValue> builder = valueBuilderFactory.newValueBuilder( SomeValue.class );
+ builder.prototype().anotherList().get().add( valueBuilderFactory.newValue( AnotherValue.class ) );
+ ValueBuilder<AnotherValue> valueBuilder = valueBuilderFactory.newValueBuilder( AnotherValue.class );
valueBuilder.prototype().val1().set( "Foo" );
builder.prototype().another().set( valueBuilder.newInstance() );
builder.prototype().number().set( 42L );
@@ -221,7 +221,7 @@ public class ValueCompositeTest
entityBuilder.instance().someValue().set( some );
SomeEntity entity = entityBuilder.newInstance();
- ValueBuilder<AssociationValue> associationBuilder = module.newValueBuilder( AssociationValue.class );
+ ValueBuilder<AssociationValue> associationBuilder = valueBuilderFactory.newValueBuilder( AssociationValue.class );
associationBuilder.prototype().some().set( entity );
associationValue = associationBuilder.newInstance();
@@ -231,7 +231,7 @@ public class ValueCompositeTest
unitOfWork = uowf.newUnitOfWork();
- AssociationValue newAssociationValue = module.newValueFromSerializedState( AssociationValue.class, json );
+ AssociationValue newAssociationValue = valueBuilderFactory.newValueFromSerializedState( AssociationValue.class, json );
Assert.assertEquals( associationValue.some().get(), newAssociationValue.some().get() );
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/runtime/src/main/java/org/apache/zest/runtime/ZestRuntimeImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/ZestRuntimeImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/ZestRuntimeImpl.java
index ce9a239..458e415 100644
--- a/core/runtime/src/main/java/org/apache/zest/runtime/ZestRuntimeImpl.java
+++ b/core/runtime/src/main/java/org/apache/zest/runtime/ZestRuntimeImpl.java
@@ -42,7 +42,7 @@ import org.apache.zest.api.property.StateHolder;
import org.apache.zest.api.service.ServiceComposite;
import org.apache.zest.api.service.ServiceDescriptor;
import org.apache.zest.api.service.ServiceReference;
-import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.unitofwork.UnitOfWork;
import org.apache.zest.api.value.ValueComposite;
import org.apache.zest.api.value.ValueDescriptor;
@@ -128,7 +128,7 @@ public final class ZestRuntimeImpl
}
@Override
- public Module moduleOf( Object compositeOrServiceReferenceOrUow )
+ public ModuleDescriptor moduleOf( Object compositeOrServiceReferenceOrUow )
{
if( compositeOrServiceReferenceOrUow instanceof TransientComposite )
{
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsModel.java b/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsModel.java
index 2483461..545dfd1 100644
--- a/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsModel.java
+++ b/core/runtime/src/main/java/org/apache/zest/runtime/activation/ActivatorsModel.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.zest.api.activation.ActivationException;
import org.apache.zest.api.activation.Activator;
import org.apache.zest.api.structure.Module;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.functional.HierarchicalVisitor;
import org.apache.zest.functional.VisitableHierarchy;
import org.apache.zest.runtime.composite.UsesInstance;
@@ -82,13 +83,13 @@ public class ActivatorsModel<ActivateeType>
return activators;
}
- public Iterable<Activator<ActivateeType>> newInstances( Module module )
+ public Iterable<Activator<ActivateeType>> newInstances( ModuleDescriptor module )
throws ActivationException
{
List<Activator<ActivateeType>> activators = new ArrayList<>();
for( ActivatorModel<ActivateeType> activatorModel : activatorModels )
{
- InjectionContext injectionContext = new InjectionContext( (ModuleInstance) module, UsesInstance.EMPTY_USES );
+ InjectionContext injectionContext = new InjectionContext( module, UsesInstance.EMPTY_USES );
activators.add( activatorModel.newInstance( injectionContext ) );
}
return activators;
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ApplicationModelFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ApplicationModelFactoryImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ApplicationModelFactoryImpl.java
index d1eb738..6da472e 100644
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ApplicationModelFactoryImpl.java
+++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ApplicationModelFactoryImpl.java
@@ -83,7 +83,7 @@ public final class ApplicationModelFactoryImpl
for( ModuleAssemblyImpl moduleAssembly : layerAssembly.moduleAssemblies() )
{
- moduleModels.add( moduleAssembly.assembleModule( helper ) );
+ moduleModels.add( moduleAssembly.assembleModule( layerModel, helper ) );
}
mapAssemblyModel.put( layerAssembly, layerModel );
layerModels.add( layerModel );
http://git-wip-us.apache.org/repos/asf/zest-java/blob/dedb068e/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityAssemblyImpl.java
index a9e92fa..8e7942a 100755
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityAssemblyImpl.java
+++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityAssemblyImpl.java
@@ -27,6 +27,7 @@ import org.apache.zest.api.entity.EntityComposite;
import org.apache.zest.api.property.GenericPropertyInfo;
import org.apache.zest.api.property.Immutable;
import org.apache.zest.api.property.Property;
+import org.apache.zest.api.structure.ModuleDescriptor;
import org.apache.zest.api.util.Annotations;
import org.apache.zest.api.util.Classes;
import org.apache.zest.bootstrap.*;
@@ -85,6 +86,7 @@ public final class EntityAssemblyImpl
}
EntityModel newEntityModel(
+ ModuleDescriptor module,
StateDeclarations stateDeclarations,
AssociationDeclarations associationDecs,
ManyAssociationDeclarations manyAssociationDecs,
@@ -102,7 +104,7 @@ public final class EntityAssemblyImpl
namedAssociationsModel = new NamedAssociationsModel();
buildComposite( helper, stateDeclarations );
- return new EntityModel( types, visibility, metaInfo,
+ return new EntityModel( module, types, visibility, metaInfo,
(EntityMixinsModel) mixinsModel,
(EntityStateModel) stateModel, compositeMethodsModel );
}