Repository: zest-java Updated Branches: refs/heads/develop cce196525 -> d212c550d
added EntityStoreSPI#versionOf (not requiring module) which enabled the removal of ModuleEntityStoreUnitOfWork altogether Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/ad1a2f54 Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/ad1a2f54 Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/ad1a2f54 Branch: refs/heads/develop Commit: ad1a2f5474195fb62d8bd36a6ce7602946207109 Parents: cce1965 Author: Kent Sølvsten <[email protected]> Authored: Sat Sep 5 23:51:54 2015 +0200 Committer: Kent Sølvsten <[email protected]> Committed: Sat Sep 5 23:51:54 2015 +0200 ---------------------------------------------------------------------- .../bootstrap/CompositeAssemblyImpl.java | 4 +- .../runtime/structure/ModuleUnitOfWork.java | 4 +- .../runtime/unitofwork/UnitOfWorkInstance.java | 6 +- .../ConcurrentModificationCheckConcern.java | 17 ++-- .../DefaultEntityStoreUnitOfWork.java | 7 ++ .../spi/entitystore/EntityStateVersions.java | 9 +-- .../zest/spi/entitystore/EntityStore.java | 2 +- .../zest/spi/entitystore/EntityStoreSPI.java | 2 + .../spi/entitystore/EntityStoreUnitOfWork.java | 2 + .../ModuleEntityStoreUnitOfWork.java | 85 -------------------- .../helpers/JSONMapEntityStoreMixin.java | 25 ++++-- .../helpers/MapEntityStoreMixin.java | 25 ++++-- .../prefs/PreferencesEntityStoreMixin.java | 30 +++++-- .../entitystore/sql/SQLEntityStoreMixin.java | 33 ++++---- .../elasticsearch/ElasticSearchIndexer.java | 1 - .../rdf/entity/EntitySerializerTest.java | 2 +- .../zest/library/rest/admin/EntityResource.java | 5 +- 17 files changed, 119 insertions(+), 140 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java index 9190d67f..5c1bbb7 100755 --- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/CompositeAssemblyImpl.java @@ -490,7 +490,7 @@ public abstract class CompositeAssemblyImpl Class<? extends Annotation> annotationType = constraintAnnotation.annotationType(); for( Class<?> constraint : constraintClasses ) { - if( helper.appliesTo( (Class<? extends Constraint<?, ?>>) constraint, annotationType, valueType ) ) + if( false && helper.appliesTo( (Class<? extends Constraint<?, ?>>) constraint, annotationType, valueType ) ) { constraintModels.add( new ConstraintModel( constraintAnnotation, (Class<? extends Constraint<?, ?>>) constraint ) ); continue nextConstraint; @@ -513,7 +513,7 @@ public abstract class CompositeAssemblyImpl // No implementation found! // Check if if it's a composite constraints - if( Arrays.stream( annotationType.getAnnotations() ) + if( false && Arrays.stream( annotationType.getAnnotations() ) .anyMatch( translate( type(), hasAnnotation( ConstraintDeclaration.class ) ) ) ) { ValueConstraintsModel valueConstraintsModel = constraintsFor( http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/runtime/src/main/java/org/apache/zest/runtime/structure/ModuleUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/structure/ModuleUnitOfWork.java b/core/runtime/src/main/java/org/apache/zest/runtime/structure/ModuleUnitOfWork.java old mode 100644 new mode 100755 index b7a3fe2..b5303d5 --- a/core/runtime/src/main/java/org/apache/zest/runtime/structure/ModuleUnitOfWork.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/structure/ModuleUnitOfWork.java @@ -203,7 +203,7 @@ public class ModuleUnitOfWork builder = new EntityBuilderInstance<>( model, this, - uow.getEntityStoreUnitOfWork( entityStore, module ), + uow.getEntityStoreUnitOfWork( entityStore ), identity ); return builder; } @@ -275,7 +275,7 @@ public class ModuleUnitOfWork return new EntityBuilderInstance<>( model, this, - uow.getEntityStoreUnitOfWork( entityStore, module ), + uow.getEntityStoreUnitOfWork( entityStore ), identity, stateResolver ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/runtime/src/main/java/org/apache/zest/runtime/unitofwork/UnitOfWorkInstance.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/unitofwork/UnitOfWorkInstance.java b/core/runtime/src/main/java/org/apache/zest/runtime/unitofwork/UnitOfWorkInstance.java old mode 100644 new mode 100755 index caf2c01..6f404e7 --- a/core/runtime/src/main/java/org/apache/zest/runtime/unitofwork/UnitOfWorkInstance.java +++ b/core/runtime/src/main/java/org/apache/zest/runtime/unitofwork/UnitOfWorkInstance.java @@ -109,12 +109,12 @@ public final class UnitOfWorkInstance return currentTime; } - public EntityStoreUnitOfWork getEntityStoreUnitOfWork( EntityStore store, ModuleSpi module ) + public EntityStoreUnitOfWork getEntityStoreUnitOfWork( EntityStore store ) { EntityStoreUnitOfWork uow = storeUnitOfWork.get( store ); if( uow == null ) { - uow = store.newUnitOfWork( usecase, module, currentTime ); + uow = store.newUnitOfWork( usecase, currentTime ); storeUnitOfWork.put( store, uow ); } return uow; @@ -141,7 +141,7 @@ public final class UnitOfWorkInstance for( ModelModule<EntityDescriptor> potentialModel : potentialModels ) { EntityStore store = potentialModel.module().entityStore(); - EntityStoreUnitOfWork storeUow = getEntityStoreUnitOfWork( store, potentialModel.module() ); + EntityStoreUnitOfWork storeUow = getEntityStoreUnitOfWork( store ); try { entityState = storeUow.entityStateOf( potentialModel.module(), identity ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/ConcurrentModificationCheckConcern.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/ConcurrentModificationCheckConcern.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/ConcurrentModificationCheckConcern.java old mode 100644 new mode 100755 index a00145d..c811568 --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/ConcurrentModificationCheckConcern.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/ConcurrentModificationCheckConcern.java @@ -48,10 +48,10 @@ public abstract class ConcurrentModificationCheckConcern private ZestAPI api; @Override - public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, ModuleSpi module, long currentTime ) + public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, long currentTime ) { - final EntityStoreUnitOfWork uow = next.newUnitOfWork( usecase, module, currentTime ); - return new ConcurrentCheckingEntityStoreUnitOfWork( uow, api.dereference( versions ), module, currentTime ); + final EntityStoreUnitOfWork uow = next.newUnitOfWork( usecase, currentTime ); + return new ConcurrentCheckingEntityStoreUnitOfWork( uow, api.dereference( versions ), currentTime ); } private static class ConcurrentCheckingEntityStoreUnitOfWork @@ -68,7 +68,6 @@ public abstract class ConcurrentModificationCheckConcern public ConcurrentCheckingEntityStoreUnitOfWork( EntityStoreUnitOfWork uow, EntityStateVersions versions, - ModuleSpi module, long currentTime ) { @@ -108,7 +107,7 @@ public abstract class ConcurrentModificationCheckConcern try { - versions.checkForConcurrentModification( loaded, module, currentTime ); + versions.checkForConcurrentModification( loaded, currentTime ); final StateCommitter committer = uow.applyChanges(); @@ -187,5 +186,13 @@ public abstract class ConcurrentModificationCheckConcern lock.readLock().unlock(); } } + + + @Override + public String versionOf( EntityReference anIdentity ) + throws EntityStoreException + { + return uow.versionOf( anIdentity ); + } } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/DefaultEntityStoreUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/DefaultEntityStoreUnitOfWork.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/DefaultEntityStoreUnitOfWork.java old mode 100644 new mode 100755 index f0f9a2a..a336af6 --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/DefaultEntityStoreUnitOfWork.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/DefaultEntityStoreUnitOfWork.java @@ -94,6 +94,13 @@ public final class DefaultEntityStoreUnitOfWork } @Override + public String versionOf( EntityReference anIdentity ) + throws EntityNotFoundException + { + return entityStoreSPI.versionOf( this, anIdentity ); + } + + @Override public StateCommitter applyChanges() throws EntityStoreException { http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStateVersions.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStateVersions.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStateVersions.java old mode 100644 new mode 100755 index 7f4b93c..57a7119 --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStateVersions.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStateVersions.java @@ -24,7 +24,6 @@ import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.usecase.Usecase; import org.apache.zest.spi.entity.EntityState; import org.apache.zest.spi.entity.EntityStatus; -import org.apache.zest.spi.module.ModuleSpi; /** * Entity versions state. @@ -36,7 +35,7 @@ public interface EntityStateVersions void rememberVersion( EntityReference identity, String version ); - void checkForConcurrentModification( Iterable<EntityState> loaded, ModuleSpi module, long currentTime ) + void checkForConcurrentModification( Iterable<EntityState> loaded, long currentTime ) throws ConcurrentEntityStateModificationException; /** @@ -67,7 +66,6 @@ public interface EntityStateVersions @Override public synchronized void checkForConcurrentModification( Iterable<EntityState> loaded, - ModuleSpi module, long currentTime ) throws ConcurrentEntityStateModificationException @@ -83,9 +81,8 @@ public interface EntityStateVersions String storeVersion = versions.get( entityState.identity() ); if( storeVersion == null ) { - EntityStoreUnitOfWork unitOfWork = store.newUnitOfWork( Usecase.DEFAULT, module, currentTime ); - EntityState state = unitOfWork.entityStateOf( module, entityState.identity() ); - storeVersion = state.version(); + EntityStoreUnitOfWork unitOfWork = store.newUnitOfWork( Usecase.DEFAULT, currentTime ); + storeVersion = unitOfWork.versionOf( entityState.identity() ); unitOfWork.discard(); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStore.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStore.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStore.java old mode 100644 new mode 100755 index 1d94c79..0a3d3e3 --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStore.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStore.java @@ -26,7 +26,7 @@ import org.apache.zest.spi.module.ModuleSpi; */ public interface EntityStore { - EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, ModuleSpi module, long currentTime ); + EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, long currentTime ); Input<EntityState, EntityStoreException> entityStates( ModuleSpi module ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreSPI.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreSPI.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreSPI.java old mode 100644 new mode 100755 index aa7bfa1..f584f7a --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreSPI.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreSPI.java @@ -31,6 +31,8 @@ public interface EntityStoreSPI EntityState entityStateOf( EntityStoreUnitOfWork unitOfWork, ModuleSpi module, EntityReference identity ); + String versionOf( EntityStoreUnitOfWork unitOfWork, EntityReference identity ); + StateCommitter applyChanges( EntityStoreUnitOfWork unitOfWork, Iterable<EntityState> state ); } http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreUnitOfWork.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreUnitOfWork.java old mode 100644 new mode 100755 index a106906..efe396e --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreUnitOfWork.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/EntityStoreUnitOfWork.java @@ -59,6 +59,8 @@ public interface EntityStoreUnitOfWork EntityState entityStateOf( ModuleSpi module, EntityReference anIdentity ) throws EntityStoreException, EntityNotFoundException; + String versionOf( EntityReference anIdentity ) throws EntityStoreException; + StateCommitter applyChanges() throws EntityStoreException; http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/ModuleEntityStoreUnitOfWork.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/ModuleEntityStoreUnitOfWork.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/ModuleEntityStoreUnitOfWork.java deleted file mode 100644 index 609390e..0000000 --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/ModuleEntityStoreUnitOfWork.java +++ /dev/null @@ -1,85 +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.spi.entitystore; - -import org.apache.zest.api.entity.EntityDescriptor; -import org.apache.zest.api.entity.EntityReference; -import org.apache.zest.api.usecase.Usecase; -import org.apache.zest.spi.entity.EntityState; -import org.apache.zest.spi.module.ModuleSpi; - -public class ModuleEntityStoreUnitOfWork - implements EntityStoreUnitOfWork -{ - private final ModuleSpi module; - private final EntityStoreUnitOfWork underlying; - - public ModuleEntityStoreUnitOfWork( ModuleSpi module, EntityStoreUnitOfWork underlying ) - { - this.module = module; - this.underlying = underlying; - } - - public ModuleSpi module() - { - return module; - } - - @Override - public String identity() - { - return underlying.identity(); - } - - @Override - public long currentTime() - { - return underlying.currentTime(); - } - - @Override - public EntityState newEntityState( ModuleSpi module, EntityReference reference, EntityDescriptor descriptor ) - throws EntityStoreException - { - return underlying.newEntityState( module, reference, descriptor ); - } - - @Override - public EntityState entityStateOf( ModuleSpi module, EntityReference reference ) - throws EntityStoreException, EntityNotFoundException - { - return underlying.entityStateOf( module, reference ); - } - - @Override - public StateCommitter applyChanges() - throws EntityStoreException - { - return underlying.applyChanges(); - } - - @Override - public void discard() - { - underlying.discard(); - } - - public Usecase usecase() - { - return underlying.usecase(); - } -} http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/JSONMapEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/JSONMapEntityStoreMixin.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/JSONMapEntityStoreMixin.java old mode 100644 new mode 100755 index f85564d..e4a6e7b --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/JSONMapEntityStoreMixin.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/JSONMapEntityStoreMixin.java @@ -57,7 +57,6 @@ import org.apache.zest.spi.entitystore.EntityStore; import org.apache.zest.spi.entitystore.EntityStoreException; import org.apache.zest.spi.entitystore.EntityStoreSPI; import org.apache.zest.spi.entitystore.EntityStoreUnitOfWork; -import org.apache.zest.spi.entitystore.ModuleEntityStoreUnitOfWork; import org.apache.zest.spi.entitystore.StateCommitter; import org.apache.zest.spi.module.ModelModule; import org.apache.zest.spi.module.ModuleSpi; @@ -140,11 +139,9 @@ public class JSONMapEntityStoreMixin // EntityStore @Override - public EntityStoreUnitOfWork newUnitOfWork( Usecase usecaseMetaInfo, ModuleSpi module, long currentTime ) + public EntityStoreUnitOfWork newUnitOfWork( Usecase usecaseMetaInfo, long currentTime ) { - EntityStoreUnitOfWork storeUnitOfWork = new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecaseMetaInfo, currentTime ); - storeUnitOfWork = new ModuleEntityStoreUnitOfWork( module, storeUnitOfWork ); - return storeUnitOfWork; + return new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecaseMetaInfo, currentTime ); } // EntityStoreSPI @@ -199,6 +196,24 @@ public class JSONMapEntityStoreMixin } @Override + public synchronized String versionOf( EntityStoreUnitOfWork unitOfWork, + EntityReference identity + ) + { + // Get state + Reader entityState = mapEntityStore.get( identity ); + try + { + JSONObject jsonObject = new JSONObject( new JSONTokener( entityState ) ); + return jsonObject.getString( JSONKeys.VERSION ); + } + catch( JSONException e ) + { + throw new EntityStoreException( e ); + } + } + + @Override public StateCommitter applyChanges( final EntityStoreUnitOfWork unitOfWork, final Iterable<EntityState> state ) http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/MapEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/MapEntityStoreMixin.java b/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/MapEntityStoreMixin.java old mode 100644 new mode 100755 index 91aad69..c821a6a --- a/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/MapEntityStoreMixin.java +++ b/core/spi/src/main/java/org/apache/zest/spi/entitystore/helpers/MapEntityStoreMixin.java @@ -54,7 +54,6 @@ import org.apache.zest.spi.entitystore.EntityStore; import org.apache.zest.spi.entitystore.EntityStoreException; import org.apache.zest.spi.entitystore.EntityStoreSPI; import org.apache.zest.spi.entitystore.EntityStoreUnitOfWork; -import org.apache.zest.spi.entitystore.ModuleEntityStoreUnitOfWork; import org.apache.zest.spi.entitystore.StateCommitter; import org.apache.zest.spi.module.ModelModule; import org.apache.zest.spi.module.ModuleSpi; @@ -110,12 +109,9 @@ public class MapEntityStoreMixin // EntityStore @Override - public EntityStoreUnitOfWork newUnitOfWork( Usecase usecaseMetaInfo, ModuleSpi module, long currentTime ) + public EntityStoreUnitOfWork newUnitOfWork( Usecase usecaseMetaInfo, long currentTime ) { - EntityStoreUnitOfWork storeUnitOfWork = - new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecaseMetaInfo, currentTime ); - storeUnitOfWork = new ModuleEntityStoreUnitOfWork( module, storeUnitOfWork ); - return storeUnitOfWork; + return new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecaseMetaInfo, currentTime ); } // EntityStoreSPI @@ -140,6 +136,23 @@ public class MapEntityStoreMixin } @Override + public synchronized String versionOf( EntityStoreUnitOfWork unitofwork, + EntityReference identity + ) + { + Reader in = mapEntityStore.get( identity ); + try + { + JSONObject jsonObject = new JSONObject( new JSONTokener( in ) ); + return jsonObject.getString( JSONKeys.VERSION ); + } + catch( JSONException e ) + { + throw new EntityStoreException( e ); + } + } + + @Override public StateCommitter applyChanges( final EntityStoreUnitOfWork unitofwork, final Iterable<EntityState> state ) throws EntityStoreException http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/extensions/entitystore-preferences/src/main/java/org/apache/zest/entitystore/prefs/PreferencesEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-preferences/src/main/java/org/apache/zest/entitystore/prefs/PreferencesEntityStoreMixin.java b/extensions/entitystore-preferences/src/main/java/org/apache/zest/entitystore/prefs/PreferencesEntityStoreMixin.java old mode 100644 new mode 100755 index ac1098b..26744a8 --- a/extensions/entitystore-preferences/src/main/java/org/apache/zest/entitystore/prefs/PreferencesEntityStoreMixin.java +++ b/extensions/entitystore-preferences/src/main/java/org/apache/zest/entitystore/prefs/PreferencesEntityStoreMixin.java @@ -65,7 +65,6 @@ import org.apache.zest.spi.entitystore.EntityStore; import org.apache.zest.spi.entitystore.EntityStoreException; import org.apache.zest.spi.entitystore.EntityStoreSPI; import org.apache.zest.spi.entitystore.EntityStoreUnitOfWork; -import org.apache.zest.spi.entitystore.ModuleEntityStoreUnitOfWork; import org.apache.zest.spi.entitystore.StateCommitter; import org.apache.zest.spi.entitystore.helpers.DefaultEntityState; import org.apache.zest.spi.module.ModelModule; @@ -170,11 +169,9 @@ public class PreferencesEntityStoreMixin } @Override - public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, ModuleSpi module, long currentTime ) + public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, long currentTime ) { - EntityStoreUnitOfWork storeUnitOfWork = new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecase, currentTime ); - storeUnitOfWork = new ModuleEntityStoreUnitOfWork( module, storeUnitOfWork ); - return storeUnitOfWork; + return new DefaultEntityStoreUnitOfWork( entityStoreSpi, newUnitOfWorkId(), usecase, currentTime ); } @Override @@ -195,7 +192,7 @@ public class PreferencesEntityStoreMixin UsecaseBuilder builder = UsecaseBuilder.buildUsecase( "zest.entitystore.preferences.visit" ); Usecase visitUsecase = builder.withMetaInfo( CacheOptions.NEVER ).newUsecase(); final EntityStoreUnitOfWork uow = - newUnitOfWork( visitUsecase, module, System.currentTimeMillis() ); + newUnitOfWork( visitUsecase, System.currentTimeMillis() ); try { @@ -435,6 +432,27 @@ public class PreferencesEntityStoreMixin } @Override + public String versionOf( EntityStoreUnitOfWork unitOfWork, EntityReference identity ) + { + try + { + if( !root.nodeExists( identity.identity() ) ) + { + throw new NoSuchEntityException( identity, UnknownType.class, unitOfWork.usecase() ); + } + + Preferences entityPrefs = root.node( identity.identity() ); + + String version = entityPrefs.get( "version", "" ); + return version; + } + catch( BackingStoreException e ) + { + throw new EntityStoreException( e ); + } + } + + @Override public StateCommitter applyChanges( final EntityStoreUnitOfWork unitofwork, final Iterable<EntityState> state ) { return new StateCommitter() http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/extensions/entitystore-sql/src/main/java/org/apache/zest/entitystore/sql/SQLEntityStoreMixin.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/main/java/org/apache/zest/entitystore/sql/SQLEntityStoreMixin.java b/extensions/entitystore-sql/src/main/java/org/apache/zest/entitystore/sql/SQLEntityStoreMixin.java old mode 100644 new mode 100755 index 6dfdae0..bb695a2 --- a/extensions/entitystore-sql/src/main/java/org/apache/zest/entitystore/sql/SQLEntityStoreMixin.java +++ b/extensions/entitystore-sql/src/main/java/org/apache/zest/entitystore/sql/SQLEntityStoreMixin.java @@ -30,7 +30,6 @@ import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.zest.api.cache.CacheOptions; import org.apache.zest.api.common.Optional; import org.apache.zest.api.common.QualifiedName; import org.apache.zest.api.entity.EntityDescriptor; @@ -44,7 +43,6 @@ import org.apache.zest.api.structure.Application; import org.apache.zest.api.type.ValueType; import org.apache.zest.api.unitofwork.EntityTypeNotFoundException; import org.apache.zest.api.usecase.Usecase; -import org.apache.zest.api.usecase.UsecaseBuilder; import org.apache.zest.api.value.ValueSerialization; import org.apache.zest.entitystore.sql.internal.DatabaseSQLService; import org.apache.zest.entitystore.sql.internal.DatabaseSQLService.EntityValueResult; @@ -65,7 +63,6 @@ import org.apache.zest.spi.entitystore.EntityStore; import org.apache.zest.spi.entitystore.EntityStoreException; import org.apache.zest.spi.entitystore.EntityStoreSPI; import org.apache.zest.spi.entitystore.EntityStoreUnitOfWork; -import org.apache.zest.spi.entitystore.ModuleEntityStoreUnitOfWork; import org.apache.zest.spi.entitystore.StateCommitter; import org.apache.zest.spi.entitystore.helpers.DefaultEntityState; import org.apache.zest.spi.entitystore.helpers.JSONKeys; @@ -240,6 +237,23 @@ public class SQLEntityStoreMixin } @Override + public String versionOf( EntityStoreUnitOfWork unitOfWork, EntityReference entityRef ) + { + EntityValueResult valueResult = getValue( entityRef ); + Reader entityState = valueResult.getReader(); + try + { + JSONObject jsonObject = new JSONObject( new JSONTokener( entityState ) ); + final String version = jsonObject.getString( JSONKeys.VERSION ); + return version; + } + catch( JSONException e ) + { + throw new EntityStoreException( e ); + } + } + + @Override public EntityState newEntityState( EntityStoreUnitOfWork unitOfWork, ModuleSpi module, EntityReference entityRef, @@ -250,12 +264,9 @@ public class SQLEntityStoreMixin } @Override - public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, ModuleSpi module, long currentTime ) + public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, long currentTime ) { - EntityStoreUnitOfWork storeUnitOfWork = - new DefaultEntityStoreUnitOfWork( entityStoreSPI, newUnitOfWorkId(), usecase, currentTime ); - storeUnitOfWork = new ModuleEntityStoreUnitOfWork( module, storeUnitOfWork ); - return storeUnitOfWork; + return new DefaultEntityStoreUnitOfWork( entityStoreSPI, newUnitOfWorkId(), usecase, currentTime ); } @Override @@ -295,12 +306,6 @@ public class SQLEntityStoreMixin Connection connection = null; PreparedStatement ps = null; ResultSet rs = null; - UsecaseBuilder builder = UsecaseBuilder.buildUsecase( "zest.entitystore.sql.visit" ); - Usecase usecase = builder.withMetaInfo( CacheOptions.NEVER ).newUsecase(); - - // TODO: This unit of work creation seem to not be cleaned up properly... CHECK!!! - final ModuleEntityStoreUnitOfWork uow = - (ModuleEntityStoreUnitOfWork) newUnitOfWork( usecase, module, System.currentTimeMillis() ); try { connection = database.getConnection(); http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchIndexer.java ---------------------------------------------------------------------- diff --git a/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchIndexer.java index 65ca307..3d9fdf2 100755 --- a/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchIndexer.java +++ b/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchIndexer.java @@ -99,7 +99,6 @@ public interface ElasticSearchIndexer EntityStoreUnitOfWork uow = entityStore.newUnitOfWork( UsecaseBuilder.newUsecase( "Load associations for indexing" ), - module, System.currentTimeMillis() ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/libraries/rdf/src/test/java/org/apache/zest/library/rdf/entity/EntitySerializerTest.java ---------------------------------------------------------------------- diff --git a/libraries/rdf/src/test/java/org/apache/zest/library/rdf/entity/EntitySerializerTest.java b/libraries/rdf/src/test/java/org/apache/zest/library/rdf/entity/EntitySerializerTest.java old mode 100644 new mode 100755 index 8082065..49edb94 --- a/libraries/rdf/src/test/java/org/apache/zest/library/rdf/entity/EntitySerializerTest.java +++ b/libraries/rdf/src/test/java/org/apache/zest/library/rdf/entity/EntitySerializerTest.java @@ -81,7 +81,7 @@ public class EntitySerializerTest EntityReference entityReference = new EntityReference( "test2" ); Usecase usecase = UsecaseBuilder.newUsecase( "Test" ); long currentTime = System.currentTimeMillis(); - EntityStoreUnitOfWork unitOfWork = entityStore.newUnitOfWork( usecase, module, currentTime ); + EntityStoreUnitOfWork unitOfWork = entityStore.newUnitOfWork( usecase, currentTime ); EntityState entityState = unitOfWork.entityStateOf( module, entityReference ); Iterable<Statement> graph = serializer.serialize( entityState ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/ad1a2f54/libraries/rest/src/main/java/org/apache/zest/library/rest/admin/EntityResource.java ---------------------------------------------------------------------- diff --git a/libraries/rest/src/main/java/org/apache/zest/library/rest/admin/EntityResource.java b/libraries/rest/src/main/java/org/apache/zest/library/rest/admin/EntityResource.java old mode 100644 new mode 100755 index 481ee15..3390e38 --- a/libraries/rest/src/main/java/org/apache/zest/library/rest/admin/EntityResource.java +++ b/libraries/rest/src/main/java/org/apache/zest/library/rest/admin/EntityResource.java @@ -108,7 +108,7 @@ public class EntityResource throws ResourceException { Usecase usecase = UsecaseBuilder.newUsecase( "Remove entity" ); - EntityStoreUnitOfWork uow = entityStore.newUnitOfWork( usecase, module, System.currentTimeMillis() ); + EntityStoreUnitOfWork uow = entityStore.newUnitOfWork( usecase, System.currentTimeMillis() ); try { EntityReference identityRef = EntityReference.parseEntityReference( identity ); @@ -130,7 +130,6 @@ public class EntityResource throws ResourceException { EntityStoreUnitOfWork uow = entityStore.newUnitOfWork( UsecaseBuilder.newUsecase( "Get entity" ), - module, System.currentTimeMillis() ); try @@ -350,7 +349,7 @@ public class EntityResource throws ResourceException { Usecase usecase = UsecaseBuilder.newUsecase( "Update entity" ); - EntityStoreUnitOfWork unitOfWork = entityStore.newUnitOfWork( usecase, module, System.currentTimeMillis() ); + EntityStoreUnitOfWork unitOfWork = entityStore.newUnitOfWork( usecase, System.currentTimeMillis() ); EntityState entity = getEntityState( unitOfWork ); Form form = new Form( entityRepresentation );
