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/10/23 14:24:09 UTC
[28/28] zest-java git commit: ZEST-180, ZEST-186, ZEST-187,
ZEST-188 Big Identity refactoring UnitOfWorkFactory is auto added to
all modules that doesn't declare one IdentityGenerator is auto-added to all
modules that deosn't declare one. Removed DCI/DDD
ZEST-180, ZEST-186, ZEST-187, ZEST-188
Big Identity refactoring
UnitOfWorkFactory is auto added to all modules that doesn't declare one
IdentityGenerator is auto-added to all modules that deosn't declare one.
Removed DCI/DDD examples, due to poor use of Identity conflicting with new Identity model. Not trivial to fix properly, but the hack would be a bad example of how to use identities.
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/103c59cb
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/103c59cb
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/103c59cb
Branch: refs/heads/develop
Commit: 103c59cbeb2907d0b3a132a1aa852e2e1b8585ae
Parents: e030bd8
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Sun Oct 23 22:16:52 2016 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Sun Oct 23 22:16:54 2016 +0800
----------------------------------------------------------------------
.../zest/api/configuration/Configuration.java | 59 +-
.../configuration/ConfigurationComposite.java | 6 +-
.../NoSuchConfigurationException.java | 16 +-
.../ConstraintViolationException.java | 5 +-
.../apache/zest/api/entity/EntityComposite.java | 6 +-
.../apache/zest/api/entity/EntityReference.java | 80 +--
.../org/apache/zest/api/entity/Identity.java | 61 --
.../zest/api/entity/IdentityGenerator.java | 35 -
.../org/apache/zest/api/entity/Lifecycle.java | 2 +-
.../apache/zest/api/identity/HasIdentity.java | 83 +++
.../apache/zest/api/identity/Identifiable.java | 6 +
.../org/apache/zest/api/identity/Identity.java | 14 +
.../zest/api/identity/IdentityGenerator.java | 39 ++
.../zest/api/identity/StringIdentity.java | 67 ++
.../zest/api/identity/UuidGeneratorMixin.java | 13 +
.../apache/zest/api/query/QueryExpressions.java | 33 +-
.../grammar/AssociationNotNullPredicate.java | 2 +-
.../query/grammar/AssociationNullPredicate.java | 2 +-
.../api/query/grammar/MatchesPredicate.java | 10 +-
.../DuplicateServiceIdentityException.java | 2 +-
.../zest/api/service/IdentityDescriptor.java | 28 -
.../api/service/ImportedServiceDescriptor.java | 3 +-
.../zest/api/service/ServiceComposite.java | 4 +-
.../zest/api/service/ServiceDescriptor.java | 4 +-
.../zest/api/service/ServiceReference.java | 13 +-
.../importer/ServiceInstanceImporter.java | 7 +-
.../api/service/qualifier/ServiceQualifier.java | 4 +-
.../org/apache/zest/api/type/ValueType.java | 6 +
.../EntityCompositeAlreadyExistsException.java | 14 +-
.../api/unitofwork/NoSuchEntityException.java | 25 +-
.../apache/zest/api/unitofwork/UnitOfWork.java | 49 +-
.../apache/zest/api/value/ValueComposite.java | 2 +-
.../zest/api/value/ValueDeserializer.java | 2 +-
.../apache/zest/api/value/ValueSerializer.java | 2 +-
.../java/org/apache/zest/api/OperatorsTest.java | 11 +-
.../api/activation/ActivationEventsTest.java | 1 -
.../apache/zest/api/unitofwork/RemovalTest.java | 4 +-
.../org/apache/zest/bootstrap/Assemblers.java | 6 +-
.../apache/zest/bootstrap/ModuleAssembly.java | 32 -
.../apache/zest/bootstrap/ServiceAssembly.java | 4 +-
.../DefaultIdentityGeneratorAssembler.java | 19 +
.../runtime/activation/ActivationDelegate.java | 3 +-
.../AbstractAssociationInstance.java | 8 +-
.../association/AssociationInstance.java | 4 +-
.../association/ManyAssociationInstance.java | 6 +-
.../association/NamedAssociationInstance.java | 4 +-
.../bootstrap/ImportedServiceAssemblyImpl.java | 18 +-
.../runtime/bootstrap/ModuleAssemblyImpl.java | 507 +++++++-------
.../runtime/bootstrap/ServiceAssemblyImpl.java | 5 +-
.../bootstrap/ServiceDeclarationImpl.java | 3 +-
.../zest/runtime/entity/EntityInstance.java | 22 +-
.../apache/zest/runtime/entity/EntityModel.java | 26 +-
.../provider/ThisInjectionProviderFactory.java | 2 +-
.../runtime/service/ImportedServiceModel.java | 7 +-
.../ImportedServiceReferenceInstance.java | 3 +-
.../zest/runtime/service/ServiceModel.java | 26 +-
.../service/ServiceReferenceInstance.java | 3 +-
.../zest/runtime/structure/ModuleInstance.java | 3 +-
.../runtime/unitofwork/BuilderEntityState.java | 2 +-
.../unitofwork/EntityBuilderInstance.java | 33 +-
.../runtime/unitofwork/EntityStateStore.java | 2 +-
.../runtime/unitofwork/ModuleUnitOfWork.java | 66 +-
.../runtime/unitofwork/UnitOfWorkInstance.java | 18 +-
.../org/apache/zest/api/common/RemovalTest.java | 3 +-
.../bootstrap/ApplicationAssemblerTest.java | 6 +
...faceCollisionWithRelatedReturnTypesTest.java | 11 +-
.../qi377/SetAssociationInSideEffectTest.java | 7 +-
...alueCollisionWithRelatedReturnTypesTest.java | 21 +-
.../apache/zest/regression/qi382/Qi382Test.java | 13 +-
.../apache/zest/regression/qi383/Qi383Test.java | 7 +-
.../ImportedServiceActivationTest.java | 3 +-
.../association/AssociationAssignmentTest.java | 6 +-
.../entity/EntityBuilderWithStateTest.java | 13 +-
.../zest/runtime/entity/EntityTypeTest.java | 7 +-
.../runtime/entity/EntityVisibilityTest.java | 28 +-
.../ConstructorInjectionOfThisTest.java | 2 -
.../runtime/injection/ServiceInjectionTest.java | 8 +-
.../injection/UnitOfWorkInjectionTest.java | 3 +-
.../zest/runtime/mixin/AssemblyMixinTest.java | 6 +-
.../zest/runtime/mixin/AssemblyRoleTest.java | 6 +-
.../apache/zest/runtime/mixin/JDKMixinTest.java | 14 +-
.../runtime/objects/ObjectVisibilityTest.java | 28 +-
.../runtime/query/IterableQuerySourceTest.java | 3 +-
.../org/apache/zest/runtime/query/Network.java | 26 +-
.../zest/runtime/service/ConfigurationTest.java | 6 +-
.../runtime/service/ServiceVisibilityTest.java | 28 +-
.../structure/TypeToCompositeLookupTest.java | 19 +-
.../transients/TransientVisibilityTest.java | 27 +-
.../unitofwork/PrivateEntityUnitOfWorkTest.java | 24 +-
.../zest/runtime/unitofwork/RemovalTest.java | 25 +-
.../runtime/value/AssociationToValueTest.java | 9 +-
.../ValueInjectionDeserializationTest.java | 3 +-
.../value/ValueSerializationRegressionTest.java | 9 +-
.../zest/runtime/value/ValueVisibilityTest.java | 37 +-
.../runtime/value/ValueWithAssociationTest.java | 28 +-
.../visibility/VisibilityInUnitOfWorkTest.java | 14 +-
.../importer/ServiceInstanceImporterTest.java | 3 +-
.../memory/MemoryEntityStoreTest.java | 2 +-
.../memory/MemoryMapEntityStoreMixin.java | 2 +-
.../java/org/apache/zest/spi/cache/Cache.java | 2 +-
.../org/apache/zest/spi/cache/CachePool.java | 2 +-
.../org/apache/zest/spi/entity/EntityState.java | 6 +-
.../zest/spi/entity/QualifiedIdentity.java | 143 ----
.../ConcurrentModificationCheckConcern.java | 5 +-
.../DefaultEntityStoreUnitOfWork.java | 7 +-
.../EntityAlreadyExistsException.java | 12 +-
.../entitystore/EntityNotFoundException.java | 12 +-
.../spi/entitystore/EntityStateVersions.java | 14 +-
.../zest/spi/entitystore/EntityStoreSPI.java | 6 +-
.../spi/entitystore/EntityStoreUnitOfWork.java | 13 +-
.../entitystore/helpers/DefaultEntityState.java | 16 +-
.../entitystore/helpers/JSONEntityState.java | 19 +-
.../zest/spi/entitystore/helpers/JSONKeys.java | 2 +-
.../helpers/JSONManyAssociationState.java | 16 +-
.../helpers/JSONMapEntityStoreMixin.java | 62 +-
.../helpers/JSONNamedAssociationState.java | 8 +-
.../helpers/MapEntityStoreMixin.java | 48 +-
.../org/apache/zest/spi/module/ModuleSpi.java | 2 +-
.../spi/uuid/UuidIdentityGeneratorMixin.java | 8 +-
.../spi/uuid/UuidIdentityGeneratorService.java | 2 +-
.../spi/value/ValueDeserializerAdapter.java | 11 +-
.../zest/spi/value/ValueSerializerAdapter.java | 25 +-
.../helpers/JSONManyAssociationStateTest.java | 18 +-
.../apache/zest/test/EntityTestAssembler.java | 2 +-
...bstractConfigurationDeserializationTest.java | 4 +-
.../test/entity/AbstractEntityStoreTest.java | 5 +-
.../test/indexing/AbstractEntityFinderTest.java | 2 +-
.../zest/test/indexing/AbstractQueryTest.java | 7 +-
.../zest/test/indexing/NameableAssert.java | 6 +-
.../org/apache/zest/test/indexing/TestData.java | 9 +-
.../layered/assembly/AccountModule.java | 1 -
.../indexing/layered/assembly/ConfigModule.java | 1 -
.../indexing/layered/assembly/FamilyModule.java | 1 -
.../layered/assembly/PersistenceModule.java | 1 -
.../layered/assembly/TestExecutionModule.java | 1 -
.../layered/assembly/TestSuite1Module.java | 1 -
.../layered/assembly/TestSuite2Module.java | 1 -
.../layered/assembly/TestSuite3Module.java | 1 -
.../zest/test/indexing/model/Nameable.java | 3 +-
.../AbstractPlainValueSerializationTest.java | 4 +-
.../zest/cache/ehcache/EhCachePoolMixin.java | 4 +-
.../ehcache/assembly/EhCacheAssembler.java | 2 +-
.../zest/cache/memcache/MemcacheAssembler.java | 2 +-
.../entitystore/file/FileEntityStoreMixin.java | 8 +-
.../file/assembly/FileEntityStoreAssembler.java | 2 +-
.../geode/GeodeEntityStoreMixin.java | 6 +-
.../assembly/GeodeEntityStoreAssembler.java | 2 +-
.../hazelcast/HazelcastEntityStoreMixin.java | 6 +-
.../assembly/HazelcastEntityStoreAssembler.java | 2 +-
.../jclouds/JCloudsMapEntityStoreMixin.java | 15 +-
.../assembly/JCloudsEntityStoreAssembler.java | 2 +-
.../entitystore/jdbm/JdbmEntityStoreMixin.java | 16 +-
.../jdbm/assembly/JdbmEntityStoreAssembler.java | 2 +-
.../leveldb/LevelDBEntityStoreMixin.java | 22 +-
.../assembly/LevelDBEntityStoreAssembler.java | 2 +-
.../assembly/MemoryEntityStoreAssembler.java | 2 +-
.../mongodb/MongoMapEntityStoreMixin.java | 6 +-
.../assembly/MongoDBEntityStoreAssembler.java | 2 +-
.../prefs/PreferencesEntityStoreMixin.java | 65 +-
.../prefs/PreferencesEntityStoreService.java | 2 +-
.../PreferenceEntityStoreAssembler.java | 2 +-
.../redis/RedisMapEntityStoreMixin.java | 10 +-
.../assembly/RedisEntityStoreAssembler.java | 2 +-
.../riak/RiakMapEntityStoreMixin.java | 8 +-
.../riak/assembly/RiakEntityStoreAssembler.java | 2 +-
.../entitystore/sql/SQLEntityStoreMixin.java | 25 +-
.../AbstractSQLEntityStoreAssembler.java | 13 +-
.../DatabaseSQLServiceStatementsMixin.java | 4 +-
.../sql/internal/SQLEntityState.java | 4 +-
.../sql/DerbySQLEntityStoreTest.java | 3 +-
.../entitystore/sql/MySQLEntityStoreTest.java | 3 +-
.../sql/PostgreSQLEntityStoreTest.java | 3 +-
.../elasticsearch/ElasticSearchIndexer.java | 49 +-
.../assembly/ESClusterIndexQueryAssembler.java | 2 +-
.../ESFilesystemIndexQueryAssembler.java | 2 +-
.../filesystem/ESFilesystemSupport.java | 17 +-
.../index/elasticsearch/ElasticSearchTest.java | 20 +-
extensions/indexing-rdf/src/docs/index-rdf.txt | 145 ++++
.../index/rdf/indexing/RdfIndexingService.java | 12 +-
.../index/rdf/query/TupleQueryExecutor.java | 6 +-
.../rdf/query/internal/RdfQueryParserImpl.java | 4 +-
.../zest/index/rdf/query/internal/Triples.java | 6 +-
.../apache/zest/index/rdf/MultiLayeredTest.java | 1 -
.../zest/index/rdf/RDFPerformanceTest.java | 6 +-
.../zest/index/rdf/RdfNamedQueryTest.java | 187 ++++--
.../zest/index/rdf/qi173/Qi173IssueTest.java | 3 +-
.../zest/index/rdf/qi64/AbstractIssueTest.java | 7 +-
.../AccountService.java | 5 +-
.../withPropagationMandatory/IssueTest.java | 5 +-
.../withPropagationRequired/AccountService.java | 5 +-
.../qi64/withPropagationRequired/IssueTest.java | 5 +-
.../AccountService.java | 5 +-
.../withPropagationRequiresNew/IssueTest.java | 5 +-
.../zest/index/rdf/qi66/Qi66IssueTest.java | 9 +-
.../zest/index/solr/EmbeddedSolrService.java | 2 +-
.../solr/internal/SolrEntityIndexerMixin.java | 4 +-
.../indexing-solr/src/test/resources/schema.xml | 2 +-
.../AbstractSQLIndexQueryAssembler.java | 8 +-
.../index/sql/internal/SQLEntityFinder.java | 4 +-
.../support/skeletons/AbstractSQLIndexing.java | 18 +-
.../support/skeletons/AbstractSQLQuerying.java | 8 +-
.../support/skeletons/AbstractSQLStartup.java | 4 +-
.../skeletons/SQLCompatEntityStateWrapper.java | 4 +-
.../metrics/yammer/NoMetricsInstalledTest.java | 6 +-
.../apache/zest/metrics/yammer/YammerTest.java | 5 +-
.../apache/zest/migration/MigrationTest.java | 13 +-
.../reindexer/internal/ReindexerMixin.java | 18 +-
.../StaxConfigurationDeserializationTest.java | 3 +-
.../apache/zest/library/alarm/AlarmEvent.java | 12 +-
.../apache/zest/library/alarm/AlarmPoint.java | 3 +-
.../zest/library/alarm/AlarmPointFactory.java | 5 +-
.../apache/zest/library/alarm/AlarmProxy.java | 11 +-
.../apache/zest/library/alarm/AlarmSystem.java | 3 +-
.../library/alarm/AlarmSystemAssembler.java | 2 +-
.../alarm/ExtendedAlarmModelService.java | 22 +-
.../library/alarm/SimpleAlarmModelService.java | 8 +-
.../alarm/StandardAlarmModelService.java | 14 +-
.../zest/library/alarm/AlarmProxyTest.java | 5 +-
.../library/alarm/ExtendedAlarmModelTest.java | 41 +-
.../library/alarm/SimpleAlarmModelTest.java | 11 +-
.../library/alarm/StandardAlarmModelTest.java | 17 +-
.../zest/library/appbrowser/AppBrowserTest.java | 8 +-
.../jmx/CircuitBreakerManagement.java | 35 +-
.../fileconfig/FileConfigurationAssembler.java | 2 +-
.../zest/library/http/AbstractJettyMixin.java | 15 +-
.../apache/zest/library/http/JettyMixin.java | 4 +-
.../library/http/JettyServiceAssembler.java | 2 +-
.../zest/library/http/SecureJettyMixin.java | 4 +-
.../library/jmx/ApplicationManagerService.java | 16 +-
.../jmx/ConfigurationManagerService.java | 17 +-
libraries/lang-scala/build.gradle | 46 --
libraries/lang-scala/dev-status.xml | 38 --
libraries/lang-scala/src/docs/lang-scala.txt | 117 ----
.../zest/library/scala/ScalaTraitMixin.java | 241 -------
.../org/apache/zest/library/scala/package.html | 24 -
.../scala/ExclamationGenericConcern.scala | 42 --
.../zest/library/scala/HelloThereConcern.scala | 28 -
.../library/scala/HelloWorldComposite.scala | 27 -
.../library/scala/HelloWorldComposite2.scala | 21 -
.../library/scala/HelloWorldCompositeTest.java | 132 ----
.../zest/library/scala/HelloWorldMixin.scala | 26 -
.../zest/library/scala/HelloWorldMixin2.scala | 27 -
.../zest/library/scala/HelloWorldMixin3.scala | 28 -
.../apache/zest/library/scala/TestEntity.scala | 68 --
.../apache/zest/library/scala/TestService.scala | 31 -
.../debug/service/DebuggingServiceMixin.java | 2 +-
.../log/service/LoggingServiceMixin.java | 2 +-
.../trace/service/TraceServiceMixin.java | 3 +-
.../zest/library/logging/DebuggingTest.java | 9 +-
.../zest/library/osgi/OSGiServiceExporter.java | 2 +-
.../zest/library/osgi/OSGiServiceTest.java | 2 +-
.../rdf/entity/EntityStateSerializer.java | 8 +-
.../rdf/repository/NativeRepositoryService.java | 2 +-
.../rdf/entity/EntitySerializerTest.java | 7 +-
.../rdf/entity/EntityTypeSerializerTest.java | 5 +-
.../org/apache/zest/library/rdf/entity/test.xml | 2 +-
.../apache/zest/library/rdf/entity/test2.xml | 2 +-
.../rest/server/api/ContextResource.java | 11 +-
.../rest/server/api/ResourceValidity.java | 2 +-
.../server/restlet/RequestReaderDelegator.java | 5 +-
.../server/restlet/ResponseWriterDelegator.java | 5 +-
.../requestreader/DefaultRequestReader.java | 8 +-
.../library/rest/admin/EntitiesResource.java | 6 +-
.../zest/library/rest/admin/EntityResource.java | 30 +-
.../library/rest/admin/RestApplication.java | 2 +-
.../zest/library/rest/admin/sparqlform.html | 8 +-
.../library/rest/admin/DummyDataService.java | 7 +-
.../zest/library/rest/admin/RestTest.java | 19 +-
.../zest/library/restlet/ZestEntityRestlet.java | 6 +-
.../zest/library/restlet/ZrestApplication.java | 10 +-
.../zest/library/restlet/crud/EntityList.java | 4 +-
.../restlet/crud/EntityListResource.java | 16 +-
.../library/restlet/crud/EntityResource.java | 16 +-
.../restlet/crud/HasIdentitySpecification.java | 44 ++
.../restlet/crud/IdentitySpecification.java | 43 --
.../library/restlet/identity/CanonicalName.java | 4 +-
.../restlet/identity/IdentityManager.java | 42 +-
.../InvalidIdentityFormatException.java | 2 +-
.../restlet/repository/CrudRepository.java | 11 +-
.../restlet/repository/RepositoryLocator.java | 6 +-
.../repository/SmallCrudRepositoryMixin.java | 22 +-
.../restlet/resource/CreationResource.java | 13 +-
.../resource/DefaultResourceFactoryImpl.java | 6 +-
.../library/restlet/resource/EntryPoint.java | 4 +-
.../restlet/resource/EntryPointResource.java | 7 +-
.../restlet/resource/ResourceBuilder.java | 45 +-
.../restlet/resource/ResourceFactory.java | 4 +-
.../restlet/resource/ServerResource.java | 16 +-
.../apache/zest/library/restlet/Customer.java | 4 +-
.../org/apache/zest/library/restlet/Order.java | 4 +-
.../apache/zest/library/restlet/Product.java | 4 +-
.../shiro/assembly/PasswordDomainAssembler.java | 2 +-
.../assembly/StandaloneShiroAssembler.java | 2 +-
.../bootstrap/ZestApplicationBootstrap.java | 2 +-
.../internal/service/ServiceFactoryBean.java | 1 -
.../internal/service/ServiceLocator.java | 6 +-
.../library/spring/importer/SpringImporter.java | 2 +-
.../spring/bootstrap/ZestTestBootstrap.java | 4 +-
.../sql/liquibase/LiquibaseAssembler.java | 2 +-
...bstractPooledDataSourceServiceAssembler.java | 2 +-
.../sql/assembly/DataSourceAssembler.java | 5 +-
.../assembly/ExternalDataSourceAssembler.java | 3 +-
.../AbstractDataSourceServiceImporterMixin.java | 9 +-
.../sql/datasource/DataSourceConfiguration.java | 4 +-
.../library/sql/datasource/DataSources.java | 3 +-
.../DataSourceConfigurationManagerService.java | 14 +-
...taSourceConfigurationManagerServiceTest.java | 4 +-
.../zest/library/uowfile/internal/UoWFile.java | 2 +-
.../zest/library/uowfile/HasUoWFileTest.java | 63 +-
.../zest/library/uowfile/HasUoWFilesTest.java | 61 +-
.../createEntity/ManufacturerRepository.java | 4 +-
.../ManufacturerRepositoryMixin.java | 5 +-
samples/dci-cargo/README.txt | 22 -
samples/dci-cargo/dcisample_a/build.gradle | 50 --
.../pathfinder_a/api/GraphTraversalService.java | 43 --
.../dcicargo/pathfinder_a/api/TransitEdge.java | 85 ---
.../dcicargo/pathfinder_a/api/TransitPath.java | 51 --
.../dcicargo/pathfinder_a/api/package.html | 26 -
.../pathfinder_a/internal/GraphDAO.java | 60 --
.../internal/GraphTraversalServiceImpl.java | 108 ---
.../dcicargo/pathfinder_a/internal/package.html | 26 -
.../sample/dcicargo/pathfinder_a/package.html | 34 -
.../bootstrap/DCISampleApplication_a.java | 83 ---
.../VisualizeApplicationStructure.java | 59 --
.../sample_a/bootstrap/assembly/Assembler.java | 279 --------
.../sample_a/bootstrap/sampledata/BaseData.java | 122 ----
.../bootstrap/sampledata/BaseDataService.java | 180 -----
.../bootstrap/sampledata/SampleDataService.java | 318 ---------
.../communication/query/BookingQueries.java | 74 --
.../communication/query/CommonQueries.java | 76 ---
.../communication/query/HandlingQueries.java | 77 ---
.../communication/query/TrackingQueries.java | 77 ---
.../sample_a/communication/web/BasePage.java | 77 ---
.../web/booking/BookNewCargoPage.java | 154 -----
.../web/booking/BookingBasePage.java | 39 --
.../web/booking/CargoDetailsPage.java | 180 -----
.../web/booking/CargoListPage.java | 99 ---
.../web/booking/ChangeDestinationPage.java | 108 ---
.../web/booking/RouteCargoPage.java | 69 --
.../communication/web/booking/RoutePanel.java | 118 ----
.../web/handling/RegisterHandlingEventPage.java | 146 ----
.../web/tracking/HandlingHistoryPanel.java | 85 ---
.../web/tracking/NextHandlingEventPanel.java | 100 ---
.../web/tracking/TrackCargoPage.java | 201 ------
.../sample_a/context/rolemap/CargoRoleMap.java | 31 -
.../sample_a/context/rolemap/CargosRoleMap.java | 31 -
.../context/rolemap/HandlingEventRoleMap.java | 34 -
.../context/rolemap/HandlingEventsRoleMap.java | 32 -
.../context/rolemap/ItineraryRoleMap.java | 36 -
.../rolemap/RouteSpecificationRoleMap.java | 36 -
.../context/shipping/booking/BookNewCargo.java | 253 -------
.../shipping/booking/BuildDeliverySnapshot.java | 569 ----------------
.../shipping/booking/RouteException.java | 28 -
.../context/shipping/handling/InspectCargo.java | 108 ---
.../handling/RegisterHandlingEvent.java | 274 --------
.../context/support/ApplicationEvents.java | 154 -----
.../context/support/FoundNoRoutesException.java | 60 --
.../RegisterHandlingEventAttemptDTO.java | 51 --
.../context/support/RoutingService.java | 155 -----
.../sample_a/data/shipping/cargo/Cargo.java | 54 --
.../sample_a/data/shipping/cargo/Cargos.java | 80 ---
.../data/shipping/cargo/RouteSpecification.java | 75 ---
.../data/shipping/cargo/TrackingId.java | 34 -
.../data/shipping/delivery/Delivery.java | 129 ----
.../delivery/ExpectedHandlingEvent.java | 47 --
.../data/shipping/delivery/RoutingStatus.java | 31 -
.../data/shipping/delivery/TransportStatus.java | 32 -
.../data/shipping/handling/HandlingEvent.java | 74 --
.../shipping/handling/HandlingEventType.java | 60 --
.../data/shipping/handling/HandlingEvents.java | 89 ---
.../data/shipping/itinerary/Itinerary.java | 95 ---
.../sample_a/data/shipping/itinerary/Leg.java | 48 --
.../data/shipping/location/Location.java | 60 --
.../data/shipping/location/UnLocode.java | 40 --
.../data/shipping/voyage/CarrierMovement.java | 42 --
.../sample_a/data/shipping/voyage/Schedule.java | 34 -
.../sample_a/data/shipping/voyage/Voyage.java | 37 -
.../data/shipping/voyage/VoyageNumber.java | 33 -
.../infrastructure/WicketZestApplication.java | 252 -------
.../sample_a/infrastructure/conversion/DTO.java | 31 -
.../sample_a/infrastructure/dci/Context.java | 129 ----
.../sample_a/infrastructure/dci/RoleMixin.java | 55 --
.../infrastructure/model/EntityModel.java | 81 ---
.../infrastructure/model/JSONModel.java | 71 --
.../sample_a/infrastructure/model/Queries.java | 42 --
.../infrastructure/model/QueryModel.java | 76 ---
.../infrastructure/model/ReadOnlyModel.java | 67 --
.../wicket/color/CorrectColor.java | 33 -
.../infrastructure/wicket/color/ErrorColor.java | 36 -
.../wicket/form/AbstractForm.java | 68 --
.../wicket/form/DateTextFieldWithPicker.java | 228 -------
.../wicket/form/SelectorInForm.java | 72 --
.../infrastructure/wicket/link/LinkPanel.java | 47 --
.../infrastructure/wicket/page/BaseWebPage.java | 58 --
.../wicket/prevnext/PrevNext.java | 123 ----
.../infrastructure/wicket/tabs/TabsPanel.java | 93 ---
.../src/main/resources/log4j.properties | 34 -
.../sample_a/communication/web/BasePage.html | 128 ----
.../web/booking/BookNewCargoPage.html | 91 ---
.../web/booking/BookingBasePage.html | 43 --
.../web/booking/CargoDetailsPage.html | 109 ---
.../web/booking/CargoListPage.html | 69 --
.../web/booking/ChangeDestinationPage.html | 80 ---
.../web/booking/RouteCargoPage.html | 55 --
.../communication/web/booking/RoutePanel.html | 64 --
.../web/handling/RegisterHandlingEventPage.html | 90 ---
.../RegisterHandlingEventPage.properties | 26 -
.../web/tracking/HandlingHistoryPanel.html | 50 --
.../tracking/HandlingHistoryPanel.properties | 26 -
.../web/tracking/NextHandlingEventPanel.html | 41 --
.../tracking/NextHandlingEventPanel.properties | 28 -
.../web/tracking/TrackCargoPage.html | 70 --
.../web/tracking/TrackCargoPage.properties | 29 -
.../context/shipping/booking/BookNewCargo.txt | 75 ---
.../shipping/booking/BuildDeliverySnapshot.txt | 157 -----
.../context/shipping/handling/InspectCargo.txt | 24 -
.../shipping/handling/RegisterHandlingEvent.txt | 79 ---
.../infrastructure/wicket/link/LinkPanel.html | 41 --
.../wicket/prevnext/PrevNext.html | 47 --
.../infrastructure/wicket/tabs/TabsPanel.html | 51 --
.../dcisample_a/src/main/webapp/WEB-INF/web.xml | 42 --
.../src/main/webapp/css/prev-next.css | 51 --
.../dcisample_a/src/main/webapp/css/style.css | 179 -----
.../dcisample_a/src/main/webapp/css/tabs.css | 77 ---
.../src/main/webapp/graphics/icon/cross.png | Bin 655 -> 0 bytes
.../src/main/webapp/graphics/icon/error.png | Bin 666 -> 0 bytes
.../src/main/webapp/graphics/icon/next.png | Bin 653 -> 0 bytes
.../main/webapp/graphics/icon/next_disabled.png | Bin 1461 -> 0 bytes
.../src/main/webapp/graphics/icon/prev-next.psd | Bin 26535 -> 0 bytes
.../src/main/webapp/graphics/icon/prev.png | Bin 625 -> 0 bytes
.../main/webapp/graphics/icon/prev_disabled.png | Bin 1429 -> 0 bytes
.../src/main/webapp/graphics/icon/tick.png | Bin 537 -> 0 bytes
.../webapp/graphics/icon/triangle-closed.png | Bin 1024 -> 0 bytes
.../main/webapp/graphics/icon/triangle-open.png | Bin 1159 -> 0 bytes
.../src/main/webapp/graphics/tabs/bg.png | Bin 938 -> 0 bytes
.../src/main/webapp/graphics/tabs/left.png | Bin 1175 -> 0 bytes
.../src/main/webapp/graphics/tabs/left_on.png | Bin 1176 -> 0 bytes
.../src/main/webapp/graphics/tabs/original.psd | Bin 41548 -> 0 bytes
.../src/main/webapp/graphics/tabs/right.png | Bin 1450 -> 0 bytes
.../src/main/webapp/graphics/tabs/right_on.png | Bin 1459 -> 0 bytes
.../dcicargo/sample_a/bootstrap/Start8081.java | 70 --
.../bootstrap/test/TestApplication.java | 120 ----
.../sample_a/bootstrap/test/TestAssembler.java | 226 -------
.../shipping/booking/BookNewCargoTest.java | 240 -------
.../booking/BuildDeliverySnapshotTest.java | 672 -------------------
.../shipping/handling/InspectCargoTest.java | 140 ----
.../handling/RegisterHandlingEventTest.java | 250 -------
samples/dci-cargo/dcisample_b/build.gradle | 50 --
.../pathfinder_b/api/GraphTraversalService.java | 48 --
.../dcicargo/pathfinder_b/api/TransitEdge.java | 85 ---
.../dcicargo/pathfinder_b/api/TransitPath.java | 73 --
.../dcicargo/pathfinder_b/api/package.html | 26 -
.../pathfinder_b/internal/GraphDAO.java | 100 ---
.../internal/GraphTraversalServiceImpl.java | 138 ----
.../dcicargo/pathfinder_b/internal/package.html | 26 -
.../sample/dcicargo/pathfinder_b/package.html | 34 -
.../bootstrap/DCISampleApplication_b.java | 86 ---
.../VisualizeApplicationStructure.java | 59 --
.../sample_b/bootstrap/assembly/Assembler.java | 281 --------
.../sample_b/bootstrap/sampledata/BaseData.java | 196 ------
.../bootstrap/sampledata/BaseDataService.java | 192 ------
.../bootstrap/sampledata/SampleDataService.java | 424 ------------
.../communication/query/BookingQueries.java | 87 ---
.../communication/query/CommonQueries.java | 76 ---
.../communication/query/HandlingQueries.java | 77 ---
.../communication/query/TrackingQueries.java | 75 ---
.../sample_b/communication/web/BasePage.java | 78 ---
.../web/booking/BookNewCargoPage.java | 152 -----
.../web/booking/BookingBasePage.java | 39 --
.../web/booking/CargoDetailsPage.java | 215 ------
.../web/booking/CargoListPage.java | 117 ----
.../web/booking/ChangeDestinationPage.java | 113 ----
.../web/booking/ReRouteCargoPage.java | 74 --
.../web/booking/RouteCargoPage.java | 67 --
.../communication/web/booking/RoutePanel.java | 124 ----
.../IncidentLoggingApplicationMockupPage.java | 268 --------
.../web/tracking/HandlingHistoryPanel.java | 92 ---
.../web/tracking/NextHandlingEventPanel.java | 100 ---
.../web/tracking/TrackCargoPage.java | 201 ------
.../interaction/booking/BookNewCargo.java | 137 ----
.../exception/ChangeDestinationException.java | 63 --
.../booking/exception/RoutingException.java | 31 -
.../exception/UnsatisfyingRouteException.java | 47 --
.../booking/routing/AssignCargoToRoute.java | 201 ------
.../booking/routing/RegisterNewDestination.java | 126 ----
.../DeriveUpdatedRouteSpecification.java | 156 -----
.../handling/ProcessHandlingEvent.java | 145 ----
.../handling/ProcessHandlingEventException.java | 28 -
.../inspection/InspectCargoDeliveryStatus.java | 161 -----
.../inspection/event/InspectArrivedCargo.java | 166 -----
.../inspection/event/InspectCargoInCustoms.java | 160 -----
.../inspection/event/InspectClaimedCargo.java | 160 -----
.../inspection/event/InspectLoadedCargo.java | 271 --------
.../inspection/event/InspectReceivedCargo.java | 183 -----
.../inspection/event/InspectUnhandledCargo.java | 148 ----
.../inspection/event/InspectUnloadedCargo.java | 218 ------
.../exception/CargoArrivedException.java | 40 --
.../exception/CargoHijackedException.java | 44 --
.../exception/CargoMisdirectedException.java | 59 --
.../exception/CargoMisroutedException.java | 52 --
.../exception/CargoNotRoutedException.java | 38 --
.../exception/InspectionException.java | 31 -
.../exception/InspectionFailedException.java | 37 -
.../exception/UnexpectedCarrierException.java | 38 --
.../parsing/ParseHandlingEventData.java | 121 ----
.../parsing/dto/ParsedHandlingEventData.java | 73 --
.../InvalidHandlingEventDataException.java | 28 -
.../registration/RegisterHandlingEvent.java | 224 -------
.../exception/AlreadyClaimedException.java | 39 --
.../CannotRegisterHandlingEventException.java | 68 --
.../exception/ChronologicalException.java | 43 --
.../exception/DuplicateEventException.java | 54 --
.../exception/MissingVoyageNumberException.java | 45 --
.../exception/NonRoutedCargoException.java | 45 --
.../exception/UnknownCargoException.java | 39 --
.../exception/UnknownEventTypeException.java | 42 --
.../exception/UnknownLocationException.java | 39 --
.../exception/UnknownVoyageException.java | 39 --
.../sample_b/context/rolemap/CargoRoleMap.java | 60 --
.../sample_b/context/rolemap/CargosRoleMap.java | 35 -
.../context/rolemap/HandlingEventsRoleMap.java | 35 -
.../context/service/routing/RoutingService.java | 149 ----
.../exception/FoundNoRoutesException.java | 60 --
.../data/aggregateroot/CargoAggregateRoot.java | 38 --
.../HandlingEventAggregateRoot.java | 38 --
.../sample_b/data/factory/CargoFactory.java | 104 ---
.../data/factory/HandlingEventFactory.java | 96 ---
.../RouteSpecificationFactoryService.java | 90 ---
.../exception/CannotCreateCargoException.java | 37 -
.../CannotCreateHandlingEventException.java | 37 -
...CannotCreateRouteSpecificationException.java | 39 --
.../sample_b/data/structure/cargo/Cargo.java | 57 --
.../structure/cargo/RouteSpecification.java | 96 ---
.../data/structure/delivery/Delivery.java | 140 ----
.../structure/delivery/NextHandlingEvent.java | 56 --
.../data/structure/delivery/RoutingStatus.java | 33 -
.../structure/delivery/TransportStatus.java | 34 -
.../data/structure/handling/HandlingEvent.java | 96 ---
.../structure/handling/HandlingEventType.java | 62 --
.../data/structure/itinerary/Itinerary.java | 115 ----
.../sample_b/data/structure/itinerary/Leg.java | 48 --
.../data/structure/location/Location.java | 62 --
.../data/structure/location/UnLocode.java | 43 --
.../data/structure/tracking/TrackingId.java | 42 --
.../data/structure/voyage/CarrierMovement.java | 45 --
.../data/structure/voyage/Schedule.java | 37 -
.../sample_b/data/structure/voyage/Voyage.java | 89 ---
.../data/structure/voyage/VoyageNumber.java | 36 -
.../infrastructure/WicketZestApplication.java | 247 -------
.../sample_b/infrastructure/conversion/DTO.java | 38 --
.../sample_b/infrastructure/dci/Context.java | 148 ----
.../sample_b/infrastructure/dci/RoleMixin.java | 66 --
.../infrastructure/model/EntityModel.java | 86 ---
.../infrastructure/model/JSONModel.java | 73 --
.../sample_b/infrastructure/model/Queries.java | 44 --
.../infrastructure/model/QueryModel.java | 73 --
.../infrastructure/model/ReadOnlyModel.java | 76 ---
.../wicket/color/CorrectColor.java | 35 -
.../infrastructure/wicket/color/ErrorColor.java | 35 -
.../wicket/form/AbstractForm.java | 69 --
.../wicket/form/DateTextFieldWithPicker.java | 230 -------
.../wicket/form/SelectorInForm.java | 79 ---
.../infrastructure/wicket/link/LinkPanel.java | 49 --
.../infrastructure/wicket/page/BaseWebPage.java | 58 --
.../wicket/prevnext/PrevNext.java | 124 ----
.../infrastructure/wicket/tabs/TabsPanel.java | 105 ---
.../src/main/resources/log4j.properties | 34 -
.../sample_b/communication/web/BasePage.html | 128 ----
.../web/booking/BookNewCargoPage.html | 91 ---
.../web/booking/BookingBasePage.html | 43 --
.../web/booking/CargoDetailsPage.html | 130 ----
.../web/booking/CargoListPage.html | 69 --
.../web/booking/ChangeDestinationPage.html | 80 ---
.../web/booking/ReRouteCargoPage.html | 55 --
.../web/booking/RouteCargoPage.html | 55 --
.../communication/web/booking/RoutePanel.html | 64 --
.../IncidentLoggingApplicationMockupPage.html | 111 ---
...identLoggingApplicationMockupPage.properties | 26 -
.../web/tracking/HandlingHistoryPanel.html | 50 --
.../tracking/HandlingHistoryPanel.properties | 26 -
.../web/tracking/NextHandlingEventPanel.html | 41 --
.../tracking/NextHandlingEventPanel.properties | 28 -
.../web/tracking/TrackCargoPage.html | 70 --
.../web/tracking/TrackCargoPage.properties | 29 -
.../sample_b/context/usecase/_ShipCargo.txt | 50 --
.../context/usecase/booking/BookNewCargo.txt | 51 --
.../booking/ChangeDestinationOfCargo.txt | 39 --
.../context/usecase/booking/ReRouteCargo.txt | 33 -
.../context/usecase/booking/RouteCargo.txt | 27 -
.../booking/routing/AssignCargoToRoute.txt | 42 --
.../booking/routing/RegisterNewDestination.txt | 30 -
.../DeriveUpdatedRouteSpecification.txt | 32 -
.../usecase/handling/_ProcessHandlingEvent.txt | 67 --
.../inspection/InspectCargoDeliveryStatus.txt | 57 --
.../inspection/event/InspectArrivedCargo.txt | 38 --
.../inspection/event/InspectCargoInCustoms.txt | 38 --
.../inspection/event/InspectClaimedCargo.txt | 38 --
.../inspection/event/InspectLoadedCargo.txt | 60 --
.../inspection/event/InspectReceivedCargo.txt | 35 -
.../inspection/event/InspectUnhandledCargo.txt | 32 -
.../inspection/event/InspectUnloadedCargo.txt | 45 --
.../handling/parsing/ParseHandlingEventData.txt | 62 --
.../registration/RegisterHandlingEvent.txt | 76 ---
.../infrastructure/wicket/link/LinkPanel.html | 41 --
.../wicket/prevnext/PrevNext.html | 47 --
.../infrastructure/wicket/tabs/TabsPanel.html | 51 --
.../dcisample_b/src/main/webapp/WEB-INF/web.xml | 42 --
.../src/main/webapp/css/prev-next.css | 51 --
.../dcisample_b/src/main/webapp/css/style.css | 178 -----
.../dcisample_b/src/main/webapp/css/tabs.css | 77 ---
.../src/main/webapp/graphics/icon/cross.png | Bin 655 -> 0 bytes
.../src/main/webapp/graphics/icon/error.png | Bin 666 -> 0 bytes
.../src/main/webapp/graphics/icon/next.png | Bin 653 -> 0 bytes
.../main/webapp/graphics/icon/next_disabled.png | Bin 1461 -> 0 bytes
.../src/main/webapp/graphics/icon/prev-next.psd | Bin 26535 -> 0 bytes
.../src/main/webapp/graphics/icon/prev.png | Bin 625 -> 0 bytes
.../main/webapp/graphics/icon/prev_disabled.png | Bin 1429 -> 0 bytes
.../src/main/webapp/graphics/icon/tick.png | Bin 537 -> 0 bytes
.../webapp/graphics/icon/triangle-closed.png | Bin 1024 -> 0 bytes
.../main/webapp/graphics/icon/triangle-open.png | Bin 1159 -> 0 bytes
.../src/main/webapp/graphics/tabs/bg.png | Bin 938 -> 0 bytes
.../src/main/webapp/graphics/tabs/left.png | Bin 1175 -> 0 bytes
.../src/main/webapp/graphics/tabs/left_on.png | Bin 1176 -> 0 bytes
.../src/main/webapp/graphics/tabs/original.psd | Bin 41548 -> 0 bytes
.../src/main/webapp/graphics/tabs/right.png | Bin 1450 -> 0 bytes
.../src/main/webapp/graphics/tabs/right_on.png | Bin 1459 -> 0 bytes
.../dcicargo/sample_b/bootstrap/Start8082.java | 70 --
.../bootstrap/test/TestApplication.java | 463 -------------
.../sample_b/bootstrap/test/TestAssembler.java | 226 -------
.../context/test/booking/BookNewCargoTest.java | 220 ------
.../booking/routing/AssignCargoToRouteTest.java | 198 ------
.../routing/RegisterNewDestinationTest.java | 316 ---------
.../DeriveUpdatedRouteSpecTest.java | 160 -----
.../event/InspectArrivedCargoTest.java | 140 ----
.../event/InspectCargoInCustomsTest.java | 138 ----
.../event/InspectClaimedCargoTest.java | 133 ----
.../event/InspectLoadedCargoTest.java | 515 --------------
.../event/InspectReceivedCargoTest.java | 286 --------
.../event/InspectUnhandledCargoTest.java | 130 ----
.../event/InspectUnloadedCargoTest.java | 345 ----------
.../parsing/ParseHandlingEventDataTest.java | 142 ----
.../registration/RegisterHandlingEventTest.java | 233 -------
.../testing/ExpectedException.java | 103 ---
.../moneytransfer/context/PayBillsContext.java | 5 +-
.../moneytransfer/context/PayBillsContext2.java | 7 +-
.../zest/dci/moneytransfer/test/AccountIds.java | 13 +
.../moneytransfer/test/TransferMoneyTest.java | 7 +-
.../moneytransfer/test/TransferMoneyTest2.java | 7 +-
.../zest/sample/forum/data/entity/Forums.java | 4 +-
.../zest/sample/forum/data/entity/Users.java | 4 +-
.../rest/resource/forum/BoardResource.java | 3 +-
.../rest/resource/forum/ForumResource.java | 3 +-
.../rest/resource/forum/ForumsResource.java | 3 +-
.../zest/sample/rental/domain/RentalShop.java | 3 +-
.../sample/rental/domain/dev/InitialData.java | 3 +-
.../zest/sample/rental/web/BookingPage.java | 5 +-
.../apache/zest/sample/rental/web/MainPage.java | 5 +-
.../org/apache/zest/sample/sqlsupport/Main.java | 5 +-
settings.gradle | 3 -
.../AbstractEntityStorePerformanceTest.java | 5 +-
.../indexing/rdf/QueryPerformanceTest.java | 30 +-
.../apache/zest/envisage/print/PDFWriter.java | 2 +-
.../zest/envisage/sample/EnvisageSample.java | 5 +-
.../initialdata/SamplePersonInitialData.java | 3 +-
.../domain/school/assembly/SchoolEntity.java | 7 +-
.../domain/school/assembly/StudentEntity.java | 3 +-
.../domain/school/assembly/SubjectEntity.java | 3 +-
.../app/templates/CrudModule/bootstrap.tmpl | 1 -
.../app/templates/Heroes/Hero.tmpl | 4 +-
.../templates/RdfIndexingModule/bootstrap.tmpl | 2 -
.../app/templates/RestApiModule/bootstrap.tmpl | 2 -
.../app/templates/SecurityModule/bootstrap.tmpl | 1 -
.../app/templates/StorageModule/bootstrap.tmpl | 2 -
.../zest/tools/model/VisitableDetailTest.java | 14 +
.../create/project/common/CrudModuleWriter.java | 1 -
.../create/project/common/CustomerWriter.java | 4 +-
.../project/common/IndexingModuleWriter.java | 2 -
.../create/project/common/OrderItemWriter.java | 4 +-
.../project/common/OrderModuleWriter.java | 1 -
.../create/project/common/OrderWriter.java | 4 +-
.../project/common/SecurityModuleWriter.java | 1 -
.../project/common/StorageModuleWriter.java | 1 -
.../project/restapp/OrderModuleWriter.java | 1 -
.../project/restapp/RestModuleWriter.java | 2 -
.../SingletonApplicationAssemblerWriter.java | 1 -
.../apache/zest/tutorials/hello/HelloTest4.java | 9 +-
686 files changed, 2363 insertions(+), 31590 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/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 2d7181f..b9044eb 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
@@ -27,7 +27,8 @@ import org.apache.zest.api.composite.Composite;
import org.apache.zest.api.composite.PropertyMapper;
import org.apache.zest.api.constraint.ConstraintViolationException;
import org.apache.zest.api.entity.EntityBuilder;
-import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.identity.HasIdentity;
+import org.apache.zest.api.identity.Identity;
import org.apache.zest.api.injection.scope.Service;
import org.apache.zest.api.injection.scope.Structure;
import org.apache.zest.api.injection.scope.This;
@@ -56,12 +57,12 @@ import org.apache.zest.api.value.ValueSerialization;
* where MyServiceConfiguration extends {@link ConfigurationComposite}, which itself is an ordinary
* {@link org.apache.zest.api.entity.EntityComposite}. The Configuration implementation
* will either locate an instance of the given Configuration type in the
- * persistent store using the identity of the Service, or create a new such instance
+ * persistent store using the reference of the Service, or create a new such instance
* if one doesn't already exist.
* </p>
* <p>
* If a new Configuration instance is created then it will be populated with properties
- * from the properties file whose filesystem name is the same as the identity (e.g. "MyService.properties").
+ * from the properties file whose filesystem name is the same as the reference (e.g. "MyService.properties").
* If a service is not given a name via the {@code org.apache.zest.bootstrap.ServiceDeclaration#identifiedBy(String)}, the
* name will default to the FQCN of the ServiceComposite type.
* </p>
@@ -174,6 +175,7 @@ public interface Configuration<T>
@Service
private Iterable<ServiceReference<ValueSerialization>> valueSerialization;
+
public ConfigurationMixin()
{
}
@@ -235,25 +237,24 @@ public interface Configuration<T>
{
ServiceDescriptor serviceModel = api.serviceDescriptorFor( serviceComposite );
- String identity = serviceComposite.identity().get();
V configuration;
try
{
- configuration = uow.get( serviceModel.<V>configurationType(), identity );
+ configuration = uow.get( serviceModel.<V>configurationType(), serviceComposite.identity().get() );
uow.pause();
}
catch( NoSuchEntityException | NoSuchEntityTypeException e )
{
- return (V) initializeConfigurationInstance( serviceComposite, uow, serviceModel, identity );
+ return (V) initializeConfigurationInstance( serviceComposite, uow, serviceModel, serviceComposite.identity().get() );
}
return configuration;
}
@SuppressWarnings( "unchecked" )
- private <V extends Identity> V initializeConfigurationInstance( ServiceComposite serviceComposite,
- UnitOfWork uow,
- ServiceDescriptor serviceModel,
- String identity
+ private <V extends HasIdentity> V initializeConfigurationInstance(ServiceComposite serviceComposite,
+ UnitOfWork uow,
+ ServiceDescriptor serviceModel,
+ Identity identity
)
throws InstantiationException
{
@@ -310,7 +311,7 @@ public interface Configuration<T>
private <C, V> V tryLoadPropertiesFile( UnitOfWork buildUow,
Class<C> compositeType,
Class<V> configType,
- String identity
+ Identity identity
)
throws InstantiationException
{
@@ -345,39 +346,39 @@ public interface Configuration<T>
return type.getResourceAsStream( resourceName );
}
- private <C, V extends Identity> V tryLoadJsonFile( UnitOfWork uow,
- Class<C> compositeType,
- Class<V> configType,
- String identity
+ private <C, V extends HasIdentity> V tryLoadJsonFile(UnitOfWork uow,
+ Class<C> compositeType,
+ Class<V> configType,
+ Identity identity
)
{
return readConfig( uow, compositeType, configType, identity, ValueSerialization.Formats.JSON, ".json" );
}
- private <C, V extends Identity> V tryLoadYamlFile( UnitOfWork uow,
- Class<C> compositeType,
- Class<V> configType,
- String identity
+ private <C, V extends HasIdentity> V tryLoadYamlFile(UnitOfWork uow,
+ Class<C> compositeType,
+ Class<V> configType,
+ Identity identity
)
{
return readConfig( uow, compositeType, configType, identity, ValueSerialization.Formats.YAML, ".yaml" );
}
- private <C, V extends Identity> V tryLoadXmlFile( UnitOfWork uow,
- Class<C> compositeType,
- Class<V> configType,
- String identity
+ private <C, V extends HasIdentity> V tryLoadXmlFile(UnitOfWork uow,
+ Class<C> compositeType,
+ Class<V> configType,
+ Identity identity
)
{
return readConfig( uow, compositeType, configType, identity, ValueSerialization.Formats.XML, ".xml" );
}
- private <C, V extends Identity> V readConfig( UnitOfWork uow,
- Class<C> compositeType,
- Class<V> configType,
- String identity,
- String format,
- String extension
+ private <C, V extends HasIdentity> V readConfig(UnitOfWork uow,
+ Class<C> compositeType,
+ Class<V> configType,
+ Identity identity,
+ String format,
+ String extension
)
{
for( ServiceReference<ValueSerialization> serializerRef : valueSerialization )
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/configuration/ConfigurationComposite.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/configuration/ConfigurationComposite.java b/core/api/src/main/java/org/apache/zest/api/configuration/ConfigurationComposite.java
index 81d5dfd..351be27 100644
--- a/core/api/src/main/java/org/apache/zest/api/configuration/ConfigurationComposite.java
+++ b/core/api/src/main/java/org/apache/zest/api/configuration/ConfigurationComposite.java
@@ -21,17 +21,17 @@
package org.apache.zest.api.configuration;
import org.apache.zest.api.composite.Composite;
-import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.identity.HasIdentity;
import org.apache.zest.api.entity.Queryable;
/**
* Services that want to be configurable should have a ConfigurationComposite that contains all the settings.
* They are treated as EntityComposites, and are therefore stored in an EntityStore. There will be one instance
- * per service instance that uses each ConfigurationComposite, and the identity of the entity is the same as that
+ * per service instance that uses each ConfigurationComposite, and the reference of the entity is the same as that
* of the service.
*/
@Queryable( false )
public interface ConfigurationComposite
- extends Identity, Composite
+ extends HasIdentity, Composite
{
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/configuration/NoSuchConfigurationException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/configuration/NoSuchConfigurationException.java b/core/api/src/main/java/org/apache/zest/api/configuration/NoSuchConfigurationException.java
index bff0a08..0bfc3fe 100644
--- a/core/api/src/main/java/org/apache/zest/api/configuration/NoSuchConfigurationException.java
+++ b/core/api/src/main/java/org/apache/zest/api/configuration/NoSuchConfigurationException.java
@@ -20,16 +20,16 @@
package org.apache.zest.api.configuration;
-import org.apache.zest.api.constraint.ConstraintViolationException;
-import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.identity.HasIdentity;
+import org.apache.zest.api.identity.Identity;
public class NoSuchConfigurationException extends RuntimeException
{
- private final Class<? extends Identity> configType;
- private final String identity;
+ private final Class<? extends HasIdentity> configType;
+ private final Identity identity;
- public NoSuchConfigurationException( Class<? extends Identity> configType,
- String identity,
+ public NoSuchConfigurationException( Class<? extends HasIdentity> configType,
+ Identity identity,
Exception cause
)
{
@@ -38,12 +38,12 @@ public class NoSuchConfigurationException extends RuntimeException
this.identity = identity;
}
- public Class<? extends Identity> configType()
+ public Class<? extends HasIdentity> configType()
{
return configType;
}
- public String identity()
+ public Identity identity()
{
return identity;
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/constraint/ConstraintViolationException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/constraint/ConstraintViolationException.java b/core/api/src/main/java/org/apache/zest/api/constraint/ConstraintViolationException.java
index e4819e5..bfd0445 100644
--- a/core/api/src/main/java/org/apache/zest/api/constraint/ConstraintViolationException.java
+++ b/core/api/src/main/java/org/apache/zest/api/constraint/ConstraintViolationException.java
@@ -32,6 +32,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.zest.api.ZestAPI;
import org.apache.zest.api.composite.Composite;
+import org.apache.zest.api.identity.Identity;
import static java.util.stream.Collectors.joining;
@@ -76,14 +77,14 @@ public class ConstraintViolationException
this.constraintViolations = violations;
}
- public ConstraintViolationException( String instanceToString,
+ public ConstraintViolationException( Identity identity,
List<Class<?>> instanceTypes,
String mixinTypeName,
String methodName,
Collection<ConstraintViolation> violations
)
{
- this.instanceToString = instanceToString;
+ this.instanceToString = identity.toString();
this.instanceTypes = instanceTypes;
this.mixinTypeName = mixinTypeName;
this.methodName = methodName;
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/entity/EntityComposite.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/entity/EntityComposite.java b/core/api/src/main/java/org/apache/zest/api/entity/EntityComposite.java
index 4e935d6..44de095 100644
--- a/core/api/src/main/java/org/apache/zest/api/entity/EntityComposite.java
+++ b/core/api/src/main/java/org/apache/zest/api/entity/EntityComposite.java
@@ -23,14 +23,14 @@ import org.apache.zest.api.association.AssociationMixin;
import org.apache.zest.api.association.ManyAssociationMixin;
import org.apache.zest.api.association.NamedAssociationMixin;
import org.apache.zest.api.composite.Composite;
+import org.apache.zest.api.identity.HasIdentity;
import org.apache.zest.api.mixin.Mixins;
/**
* EntityComposites are Composites that has mutable state persisted in EntityStores and equality defined from its
- * identity.
+ * reference.
*/
@Mixins( { AssociationMixin.class, ManyAssociationMixin.class, NamedAssociationMixin.class } )
-public interface EntityComposite
- extends Identity, Composite
+public interface EntityComposite extends HasIdentity, Composite
{
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/entity/EntityReference.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/entity/EntityReference.java b/core/api/src/main/java/org/apache/zest/api/entity/EntityReference.java
index 0cb1e65..a6a5e0e 100644
--- a/core/api/src/main/java/org/apache/zest/api/entity/EntityReference.java
+++ b/core/api/src/main/java/org/apache/zest/api/entity/EntityReference.java
@@ -21,80 +21,67 @@
package org.apache.zest.api.entity;
import java.io.Serializable;
+import java.util.Objects;
+import org.apache.zest.api.identity.Identity;
+import org.apache.zest.api.identity.StringIdentity;
import org.apache.zest.api.util.NullArgumentException;
/**
- * An EntityReference is identity of a specific Entity instance.
- * <p>When stringified, the identity is used as-is. Example:</p>
+ * An EntityReference is reference of a specific Entity instance.
+ * <p>When stringified, the reference is used as-is. Example:</p>
* <pre>123456-abcde</pre>
*/
public final class EntityReference
- implements Serializable
+ implements Serializable
{
/**
- * Parse an URI to an EntityReference.
- * @param uri the URI to parse
- * @return the EntityReference represented by the given URI
+ * Parse an Entity reference to an EntityReference.
+ *
+ * @param identityString the EntityReference reference
+ * @return the EntityReference represented by the given reference
*/
- public static EntityReference parseURI( String uri )
+ public static EntityReference parseEntityReference(String identityString)
{
- String identity = uri.substring( "urn:zest:entity:".length() );
- return new EntityReference( identity );
- }
-
- /**
- * Parse an Entity identity to an EntityReference.
- * @param identity the EntityReference identity
- * @return the EntityReference represented by the given identity
- */
- public static EntityReference parseEntityReference( String identity )
- {
- return new EntityReference( identity );
+ return new EntityReference( new StringIdentity( identityString ) );
}
/**
* @param object an EntityComposite
* @return the EntityReference for the given EntityComposite
*/
- public static EntityReference entityReferenceFor( Object object )
+ public static EntityReference entityReferenceFor(Object object)
{
- return new EntityReference( (EntityComposite) object );
+ return new EntityReference(((EntityComposite) object).identity().get());
}
- public static EntityReference create( Identity identity )
+ public static EntityReference create(Identity identity)
{
- if( identity == null )
+ if (identity == null)
+ {
return null;
- return new EntityReference( identity.identity().get() );
+ }
+ return new EntityReference(identity);
}
private static final long serialVersionUID = 1L;
- private String identity;
+ private Identity identity;
/**
- * @param entityComposite a non-null EntityComposite
- * @throws NullPointerException if entityComposite is null
+ * @param identity reference reference
+ * @throws NullArgumentException if reference is null or empty
*/
- public EntityReference( EntityComposite entityComposite )
+ private EntityReference( Identity identity )
{
- this( entityComposite.identity().get() );
- }
-
- /**
- * @param identity reference identity
- * @throws NullArgumentException if identity is null or empty
- */
- public EntityReference( String identity )
- {
- NullArgumentException.validateNotEmpty( "identity", identity );
+ Objects.requireNonNull(identity,"reference must not be null");
this.identity = identity;
}
/**
- * @return This EntityReference identity.
+ *
+ * @return The reference of the Entity that this EntityReference.is referring to
*/
- public final String identity()
+ public final Identity identity()
{
return identity;
}
@@ -108,18 +95,18 @@ public final class EntityReference
}
@Override
- public boolean equals( Object o )
+ public boolean equals(Object o)
{
- if( this == o )
+ if (this == o)
{
return true;
}
- if( o == null || getClass() != o.getClass() )
+ if (o == null || getClass() != o.getClass())
{
return false;
}
EntityReference that = (EntityReference) o;
- return identity.equals( that.identity );
+ return identity.equals(that.identity);
}
@Override
@@ -128,12 +115,9 @@ public final class EntityReference
return identity.hashCode();
}
- /**
- * @return This EntityReference identity.
- */
@Override
public String toString()
{
- return identity;
+ return identity.toString();
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/entity/Identity.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/entity/Identity.java b/core/api/src/main/java/org/apache/zest/api/entity/Identity.java
deleted file mode 100644
index 3803201..0000000
--- a/core/api/src/main/java/org/apache/zest/api/entity/Identity.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.entity;
-
-import org.apache.zest.api.injection.scope.State;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.property.Immutable;
-import org.apache.zest.api.property.Property;
-
-/**
- * This interface provides the identity of the object which may be used
- * to store the state in a database. It is not the responsibility of the
- * framework to come up with a good identity string.
- */
-@Mixins( Identity.IdentityMixin.class )
-public interface Identity
-{
- /**
- * Returns the client view of the identity.
- * <p>
- * It is unique within the owning repository, but potentially not unique globally and between
- * types.
- * </p>
- * @return The Identity of 'this' composite.
- */
- @Immutable
- Property<String> identity();
-
- /**
- * Default Identity implementation.
- */
- class IdentityMixin
- implements Identity
- {
- @State
- private Property<String> identity;
-
- @Override
- public Property<String> identity()
- {
- return identity;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/entity/IdentityGenerator.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/entity/IdentityGenerator.java b/core/api/src/main/java/org/apache/zest/api/entity/IdentityGenerator.java
deleted file mode 100644
index eb3268b..0000000
--- a/core/api/src/main/java/org/apache/zest/api/entity/IdentityGenerator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.entity;
-
-/**
- * Generator for identities of EntityComposite's.
- */
-public interface IdentityGenerator
-{
- /**
- * Generate a new id for the given Composite type
- *
- * @param compositeType the type of composite
- *
- * @return a new identity
- */
- String generate( Class<?> compositeType );
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/entity/Lifecycle.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/entity/Lifecycle.java b/core/api/src/main/java/org/apache/zest/api/entity/Lifecycle.java
index bfcf474..e7bde27 100644
--- a/core/api/src/main/java/org/apache/zest/api/entity/Lifecycle.java
+++ b/core/api/src/main/java/org/apache/zest/api/entity/Lifecycle.java
@@ -45,7 +45,7 @@ package org.apache.zest.api.entity;
*
* public void create()
* {
- * String thisId = meAsIdentity.identity().get();
+ * String thisId = meAsIdentity.reference().get();
* EntityBuilder builder = uow.newEntityBuilder( thisId + ":1", UserComposite.class );
* User admin = builder.newInstance();
* admin.set( admin );
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/HasIdentity.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/HasIdentity.java b/core/api/src/main/java/org/apache/zest/api/identity/HasIdentity.java
new file mode 100644
index 0000000..cd14f0f
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/HasIdentity.java
@@ -0,0 +1,83 @@
+/*
+ * 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.identity;
+
+import java.lang.reflect.Method;
+import org.apache.zest.api.common.QualifiedName;
+import org.apache.zest.api.injection.scope.State;
+import org.apache.zest.api.mixin.Mixins;
+import org.apache.zest.api.property.Immutable;
+import org.apache.zest.api.property.Property;
+
+/**
+ * This interface provides the identity of the object which may be used
+ * to store the state in a database. It is not the responsibility of the
+ * framework to come up with a good identity string.
+ */
+@Mixins( HasIdentity.HasIdentityMixin.class )
+public interface HasIdentity
+{
+ Method IDENTITY_METHOD = HasIdentityMixin.identityMethod();
+ QualifiedName IDENTITY_STATE_NAME = HasIdentityMixin.stateName();
+
+ @Immutable
+ Property<Identity> identity();
+
+ /**
+ * Default Identity implementation.
+ */
+ class HasIdentityMixin
+ implements HasIdentity
+ {
+ @State
+ private Property<Identity> identity;
+
+
+ @Override
+ public Property<Identity> identity()
+ {
+ return identity;
+ }
+
+ private static QualifiedName stateName()
+ {
+ try
+ {
+ return QualifiedName.fromAccessor( HasIdentity.class.getMethod( "identity" ) );
+ }
+ catch( NoSuchMethodException e )
+ {
+ throw new InternalError( "Zest Core Runtime codebase is corrupted. Contact Zest team: EntityBuilderInstance" );
+ }
+ }
+
+ private static Method identityMethod()
+ {
+ try
+ {
+ return HasIdentity.class.getMethod( "identity" );
+ }
+ catch( NoSuchMethodException e )
+ {
+ throw new InternalError( "Zest Core Runtime codebase is corrupted." );
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/Identifiable.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/Identifiable.java b/core/api/src/main/java/org/apache/zest/api/identity/Identifiable.java
new file mode 100644
index 0000000..23c733e
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/Identifiable.java
@@ -0,0 +1,6 @@
+package org.apache.zest.api.identity;
+
+public interface Identifiable
+{
+ Identity identity();
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/Identity.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/Identity.java b/core/api/src/main/java/org/apache/zest/api/identity/Identity.java
new file mode 100644
index 0000000..a0a15b3
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/Identity.java
@@ -0,0 +1,14 @@
+package org.apache.zest.api.identity;
+
+/**
+ * Representation of an Identity.
+ * Identity is an opaque, immutable data type.
+ * Identity is a very central concept in any domain model.
+ *
+ */
+public interface Identity
+{
+ String toString();
+
+ byte[] toBytes();
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/IdentityGenerator.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/IdentityGenerator.java b/core/api/src/main/java/org/apache/zest/api/identity/IdentityGenerator.java
new file mode 100644
index 0000000..d15c8ab
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/IdentityGenerator.java
@@ -0,0 +1,39 @@
+/*
+ * 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.identity;
+
+import org.apache.zest.api.mixin.Mixins;
+
+/**
+ * Generator for identities of EntityComposite's.
+ */
+@Mixins( UuidGeneratorMixin.class )
+public interface IdentityGenerator
+{
+ /**
+ * Generate a new id for the given Composite type
+ *
+ * @param compositeType the type of composite
+ *
+ * @return a new reference
+ */
+ Identity generate( Class<?> compositeType );
+
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/StringIdentity.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/StringIdentity.java b/core/api/src/main/java/org/apache/zest/api/identity/StringIdentity.java
new file mode 100644
index 0000000..d7acb09
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/StringIdentity.java
@@ -0,0 +1,67 @@
+package org.apache.zest.api.identity;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
+public class StringIdentity
+ implements Identity
+{
+ private final String value;
+
+ public StringIdentity(String value)
+ {
+ Objects.requireNonNull( value, "Identity can not be null." );
+ this.value = value;
+ }
+
+ public StringIdentity(byte[] bytes)
+ {
+ value = new String(bytes, StandardCharsets.UTF_8);
+ }
+
+ public String value()
+ {
+ return value;
+ }
+
+ @Override
+ public byte[] toBytes()
+ {
+ return value.getBytes(StandardCharsets.UTF_8);
+ }
+
+ @Override
+ public String toString()
+ {
+ return value;
+ }
+
+ public static Identity fromString(String serializedState)
+ {
+ return new StringIdentity( serializedState );
+ }
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o)
+ {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass())
+ {
+ return false;
+ }
+
+ StringIdentity that = (StringIdentity) o;
+
+ return value.equals(that.value);
+
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return value.hashCode();
+ }
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/identity/UuidGeneratorMixin.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/identity/UuidGeneratorMixin.java b/core/api/src/main/java/org/apache/zest/api/identity/UuidGeneratorMixin.java
new file mode 100644
index 0000000..854fe95
--- /dev/null
+++ b/core/api/src/main/java/org/apache/zest/api/identity/UuidGeneratorMixin.java
@@ -0,0 +1,13 @@
+package org.apache.zest.api.identity;
+
+import java.util.UUID;
+
+public class UuidGeneratorMixin
+ implements IdentityGenerator
+{
+ @Override
+ public Identity generate(Class<?> compositeType)
+ {
+ return StringIdentity.fromString(UUID.randomUUID().toString());
+ }
+}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java
index ef17f5e..dea7134 100644
--- a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java
+++ b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java
@@ -32,7 +32,8 @@ import org.apache.zest.api.association.GenericAssociationInfo;
import org.apache.zest.api.association.ManyAssociation;
import org.apache.zest.api.association.NamedAssociation;
import org.apache.zest.api.composite.Composite;
-import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.identity.HasIdentity;
+import org.apache.zest.api.identity.Identity;
import org.apache.zest.api.injection.scope.State;
import org.apache.zest.api.property.GenericPropertyInfo;
import org.apache.zest.api.property.Property;
@@ -64,6 +65,7 @@ import org.apache.zest.api.query.grammar.PropertyReference;
import org.apache.zest.api.query.grammar.Variable;
import org.apache.zest.api.util.NullArgumentException;
+import static org.apache.zest.api.identity.HasIdentity.IDENTITY_METHOD;
import static org.apache.zest.functional.Iterables.first;
import static org.apache.zest.functional.Iterables.prepend;
@@ -73,19 +75,6 @@ import static org.apache.zest.functional.Iterables.prepend;
public final class QueryExpressions
{
// This is used for eq(Association,Composite)
- private static final Method IDENTITY_METHOD;
-
- static
- {
- try
- {
- IDENTITY_METHOD = Identity.class.getMethod( "identity" );
- }
- catch( NoSuchMethodException e )
- {
- throw new InternalError( "Zest Core API codebase is corrupted. Contact Zest team: QueryExpressions" );
- }
- }
// Templates and variables -----------------------------------------------|
@@ -368,14 +357,16 @@ public final class QueryExpressions
*
* @return a new EQUALS specification for an Association.
*/
- public static <T> EqPredicate<String> eq( Association<T> association, T value )
+ public static <T> EqPredicate<Identity> eq( Association<T> association, T value )
{
- return new EqPredicate<>( new PropertyFunction<String>( null,
- association( association ),
- null,
- null,
- IDENTITY_METHOD ),
- value.toString() );
+ return new EqPredicate<>(
+ new PropertyFunction<>(
+ null,
+ association(association),
+ null,
+ null,
+ IDENTITY_METHOD),
+ ((HasIdentity) value).identity().get());
}
/**
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java
index 3b6444d..29ce85e 100644
--- a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java
+++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNotNullPredicate.java
@@ -63,6 +63,6 @@ public class AssociationNotNullPredicate<T>
@Override
public String toString()
{
- return association.toString() + "is not null";
+ return association.toString() + " is not null";
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java
index 4cf596a..a304ae0 100644
--- a/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java
+++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/AssociationNullPredicate.java
@@ -63,6 +63,6 @@ public class AssociationNullPredicate<T>
@Override
public String toString()
{
- return association.toString() + "is null";
+ return association.toString() + " is null";
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/query/grammar/MatchesPredicate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/query/grammar/MatchesPredicate.java b/core/api/src/main/java/org/apache/zest/api/query/grammar/MatchesPredicate.java
index 3e410f4..ce8f7b3 100644
--- a/core/api/src/main/java/org/apache/zest/api/query/grammar/MatchesPredicate.java
+++ b/core/api/src/main/java/org/apache/zest/api/query/grammar/MatchesPredicate.java
@@ -81,14 +81,6 @@ public class MatchesPredicate
@Override
public String toString()
{
- return new StringBuilder()
- .append( "( " )
- .append( property )
- .append( " matches " )
- .append( "\"" )
- .append( value )
- .append( "\"" )
- .append( " )" )
- .toString();
+ return "( " + property + " matches " + "\"" + value + "\"" + " )";
}
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/DuplicateServiceIdentityException.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/DuplicateServiceIdentityException.java b/core/api/src/main/java/org/apache/zest/api/service/DuplicateServiceIdentityException.java
index 3b60ec2..b5b13e6 100644
--- a/core/api/src/main/java/org/apache/zest/api/service/DuplicateServiceIdentityException.java
+++ b/core/api/src/main/java/org/apache/zest/api/service/DuplicateServiceIdentityException.java
@@ -23,7 +23,7 @@ package org.apache.zest.api.service;
import org.apache.zest.api.common.InvalidApplicationException;
/**
- * Thrown when a duplicate service identity is detected.
+ * Thrown when a duplicate service reference is detected.
*/
public class DuplicateServiceIdentityException
extends InvalidApplicationException
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/IdentityDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/IdentityDescriptor.java b/core/api/src/main/java/org/apache/zest/api/service/IdentityDescriptor.java
deleted file mode 100644
index 26947b3..0000000
--- a/core/api/src/main/java/org/apache/zest/api/service/IdentityDescriptor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.service;
-
-/**
- * Identity Descriptor.
- */
-public interface IdentityDescriptor
-{
- String identity();
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/ImportedServiceDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/ImportedServiceDescriptor.java b/core/api/src/main/java/org/apache/zest/api/service/ImportedServiceDescriptor.java
index 8f5464e..e68f4b7 100644
--- a/core/api/src/main/java/org/apache/zest/api/service/ImportedServiceDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/service/ImportedServiceDescriptor.java
@@ -21,12 +21,13 @@
package org.apache.zest.api.service;
import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.identity.Identifiable;
/**
* {@code ServiceDescriptor} provides meta information of a service.
*/
public interface ImportedServiceDescriptor
- extends ModelDescriptor, IdentityDescriptor
+ extends ModelDescriptor, Identifiable
{
Class<? extends ServiceImporter> serviceImporter();
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/ServiceComposite.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/ServiceComposite.java b/core/api/src/main/java/org/apache/zest/api/service/ServiceComposite.java
index 37ffd25..48ff167 100644
--- a/core/api/src/main/java/org/apache/zest/api/service/ServiceComposite.java
+++ b/core/api/src/main/java/org/apache/zest/api/service/ServiceComposite.java
@@ -21,13 +21,13 @@
package org.apache.zest.api.service;
import org.apache.zest.api.composite.Composite;
-import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.identity.HasIdentity;
/**
* All Composites being used to implement Services
* must extend this interface.
*/
public interface ServiceComposite
- extends Identity, Composite
+ extends HasIdentity, Composite
{
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/ServiceDescriptor.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/ServiceDescriptor.java b/core/api/src/main/java/org/apache/zest/api/service/ServiceDescriptor.java
index 84d3d2e..8de5ff1 100644
--- a/core/api/src/main/java/org/apache/zest/api/service/ServiceDescriptor.java
+++ b/core/api/src/main/java/org/apache/zest/api/service/ServiceDescriptor.java
@@ -22,14 +22,16 @@ package org.apache.zest.api.service;
import org.apache.zest.api.composite.CompositeDescriptor;
import org.apache.zest.api.composite.StatefulCompositeDescriptor;
+import org.apache.zest.api.identity.Identifiable;
/**
* {@code ServiceDescriptor} provides meta informations of a service.
*/
public interface ServiceDescriptor
- extends CompositeDescriptor, IdentityDescriptor, StatefulCompositeDescriptor
+ extends CompositeDescriptor, StatefulCompositeDescriptor, Identifiable
{
boolean isInstantiateOnStartup();
<T> Class<T> configurationType();
+
}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/core/api/src/main/java/org/apache/zest/api/service/ServiceReference.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/apache/zest/api/service/ServiceReference.java b/core/api/src/main/java/org/apache/zest/api/service/ServiceReference.java
index 7e8e970..cce52e4 100644
--- a/core/api/src/main/java/org/apache/zest/api/service/ServiceReference.java
+++ b/core/api/src/main/java/org/apache/zest/api/service/ServiceReference.java
@@ -22,6 +22,7 @@ package org.apache.zest.api.service;
import org.apache.zest.api.activation.ActivationEventListenerRegistration;
import org.apache.zest.api.composite.ModelDescriptor;
+import org.apache.zest.api.identity.Identifiable;
import org.apache.zest.api.structure.MetaInfoHolder;
import org.apache.zest.api.type.HasTypes;
@@ -30,14 +31,9 @@ import org.apache.zest.api.type.HasTypes;
* You can also access the actual service through get(), that can then be invoked.
*/
public interface ServiceReference<T>
- extends HasTypes, ActivationEventListenerRegistration, MetaInfoHolder
+ extends HasTypes, ActivationEventListenerRegistration, MetaInfoHolder, Identifiable
{
/**
- * @return the service's identity
- */
- String identity();
-
- /**
* @return the actual service
*/
T get();
@@ -52,9 +48,8 @@ public interface ServiceReference<T>
*/
boolean isAvailable();
- /** Returns the ServiceModel of the service referenced by this ServiceReference.
- *
- * @return
+ /**
+ * @return the ServiceModel of the service referenced by this ServiceReference.
*/
ModelDescriptor model();
}