Return-Path: X-Original-To: apmail-zest-commits-archive@minotaur.apache.org Delivered-To: apmail-zest-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 33F3C18A7E for ; Wed, 16 Dec 2015 06:17:39 +0000 (UTC) Received: (qmail 62665 invoked by uid 500); 16 Dec 2015 06:17:39 -0000 Delivered-To: apmail-zest-commits-archive@zest.apache.org Received: (qmail 62626 invoked by uid 500); 16 Dec 2015 06:17:38 -0000 Mailing-List: contact commits-help@zest.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zest.apache.org Delivered-To: mailing list commits@zest.apache.org Received: (qmail 62608 invoked by uid 99); 16 Dec 2015 06:17:38 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Dec 2015 06:17:38 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id BAFDAE0B13; Wed, 16 Dec 2015 06:17:38 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: niclas@apache.org To: commits@zest.apache.org Date: Wed, 16 Dec 2015 06:17:38 -0000 Message-Id: <0b77afe66b1d4c059412da98c8184cce@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/9] zest-java git commit: ZEST-132, ZEST-97 UnitOfWorkFactory as a customizable Service UnitOfWork as a customizable Transient Class can be a Transient directly, with itself as both the Composite Type and the Mixin. SideEffects declarations Repository: zest-java Updated Branches: refs/heads/ZEST-132 6138c3057 -> a5be013f3 http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/context/test/handling/registration/RegisterHandlingEventTest.java ---------------------------------------------------------------------- diff --git a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/context/test/handling/registration/RegisterHandlingEventTest.java b/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/context/test/handling/registration/RegisterHandlingEventTest.java index 8482f0f..eb6e2db 100644 --- a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/context/test/handling/registration/RegisterHandlingEventTest.java +++ b/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/context/test/handling/registration/RegisterHandlingEventTest.java @@ -60,7 +60,7 @@ public class RegisterHandlingEventTest extends TestApplication throws Exception { super.prepareTest(); - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); HANDLING_EVENTS = uow.get( HandlingEventAggregateRoot.class, HandlingEventAggregateRoot.HANDLING_EVENTS_ID ); CargoAggregateRoot CARGOS = uow.get( CargoAggregateRoot.class, CargoAggregateRoot.CARGOS_ID ); @@ -129,11 +129,11 @@ public class RegisterHandlingEventTest extends TestApplication throws Exception { deviation_3c_VoyageNumber_Unknown(); - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); // Receive 1st time (store event so that it turns up in query) uow.complete(); - tempUow = module.newUnitOfWork(); + tempUow = uowf.newUnitOfWork(); handlingEvent = HANDLING_EVENTS.createHandlingEvent( DAY1, DAY1, trackingId, RECEIVE, HONGKONG, noVoyage ); tempUow.complete(); @@ -148,11 +148,11 @@ public class RegisterHandlingEventTest extends TestApplication throws Exception { deviation_4a_DuplicateEvent_Receive(); - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); uow.complete(); // In customs 1st time - tempUow = module.newUnitOfWork(); + tempUow = uowf.newUnitOfWork(); handlingEvent = HANDLING_EVENTS.createHandlingEvent( DAY1, DAY1, trackingId, CUSTOMS, HONGKONG, noVoyage ); tempUow.complete(); @@ -167,11 +167,11 @@ public class RegisterHandlingEventTest extends TestApplication throws Exception { deviation_4a_DuplicateEvent_Customs(); - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); uow.complete(); // Claimed 1st time - tempUow = module.newUnitOfWork(); + tempUow = uowf.newUnitOfWork(); handlingEvent = HANDLING_EVENTS.createHandlingEvent( DAY1, DAY1, trackingId, CLAIM, HONGKONG, noVoyage ); tempUow.complete(); @@ -200,8 +200,8 @@ public class RegisterHandlingEventTest extends TestApplication deviation_5a_NoHandlingAfterClaim(); // Delete handling events from memory - tempUow = module.newUnitOfWork(); - Query events = tempUow.newQuery( module.newQueryBuilder( HandlingEventEntity.class ) ); + tempUow = uowf.newUnitOfWork(); + Query events = tempUow.newQuery( qbf.newQueryBuilder( HandlingEventEntity.class ) ); for( HandlingEvent event : events ) { tempUow.remove( event ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest.java ---------------------------------------------------------------------- diff --git a/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest.java b/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest.java index 76c82e9..78f470b 100644 --- a/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest.java +++ b/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest.java @@ -14,6 +14,8 @@ package org.apache.zest.dci.moneytransfer.test; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; +import org.apache.zest.bootstrap.unitofwork.DefaultUnitOfWorkAssembler; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -45,6 +47,7 @@ public class TransferMoneyTest public static final String CHECKING_ACCOUNT_ID = "CheckingAccountId"; public static final String CREDITOR_ID1 = "BakerAccount"; public static final String CREDITOR_ID2 = "ButcherAccount"; + private static UnitOfWorkFactory uowf; @BeforeClass public static void setup() @@ -55,6 +58,7 @@ public class TransferMoneyTest public void assemble( ModuleAssembly module ) throws AssemblyException { + module.withDefaultUnitOfWorkFactory(); module.entities( CheckingAccountRolemap.class, SavingsAccountRolemap.class, @@ -63,7 +67,7 @@ public class TransferMoneyTest new EntityTestAssembler().assemble( module ); } }; - + uowf = assembler.module().unitOfWorkFactory(); bootstrapData( assembler ); } @@ -85,7 +89,7 @@ public class TransferMoneyTest public void printBalances() { - UnitOfWork uow = assembler.module().newUnitOfWork( UsecaseBuilder.newUsecase( "Print balances" ) ); + UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Print balances" ) ); try { @@ -105,7 +109,7 @@ public class TransferMoneyTest private static void bootstrapData( SingletonAssembler assembler ) throws Exception { - UnitOfWork uow = assembler.module().newUnitOfWork( newUsecase( "Bootstrap data" ) ); + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "Bootstrap data" ) ); try { SavingsAccountEntity savingsAccount = uow.newEntity( SavingsAccountEntity.class, SAVINGS_ACCOUNT_ID ); @@ -134,8 +138,7 @@ public class TransferMoneyTest public void transferHalfOfMoneyFromSavingsToChecking() throws Exception { - UnitOfWork uow = assembler.module() - .newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); + UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); try { @@ -163,8 +166,7 @@ public class TransferMoneyTest public void transferTwiceOfMoneyFromSavingsToChecking() throws Exception { - UnitOfWork uow = assembler.module() - .newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); + UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); try { @@ -192,7 +194,7 @@ public class TransferMoneyTest public void payAllBills() throws Exception { - UnitOfWork uow = assembler.module().newUnitOfWork( newUsecase( "Pay all bills from checking to creditors" ) ); + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "Pay all bills from checking to creditors" ) ); try { BalanceData source = uow.get( BalanceData.class, CHECKING_ACCOUNT_ID ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest2.java ---------------------------------------------------------------------- diff --git a/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest2.java b/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest2.java index 8507b8b..7d4a11c 100644 --- a/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest2.java +++ b/samples/dci/src/test/java/org/apache/zest/dci/moneytransfer/test/TransferMoneyTest2.java @@ -14,6 +14,8 @@ package org.apache.zest.dci.moneytransfer.test; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; +import org.apache.zest.bootstrap.unitofwork.DefaultUnitOfWorkAssembler; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -44,6 +46,7 @@ public class TransferMoneyTest2 public static final String CHECKING_ACCOUNT_ID = "CheckingAccountId"; public static final String CREDITOR_ID1 = "BakerAccount"; public static final String CREDITOR_ID2 = "ButcherAccount"; + private static UnitOfWorkFactory uowf; @BeforeClass public static void setup() @@ -54,6 +57,7 @@ public class TransferMoneyTest2 public void assemble( ModuleAssembly module ) throws AssemblyException { + module.withDefaultUnitOfWorkFactory(); module.entities( CheckingAccountEntity.class, SavingsAccountEntity.class, @@ -67,7 +71,7 @@ public class TransferMoneyTest2 }; module = assembler.module(); - + uowf = module.unitOfWorkFactory(); bootstrapData(); } @@ -89,7 +93,7 @@ public class TransferMoneyTest2 private void printBalances() { - UnitOfWork uow = module.newUnitOfWork( UsecaseBuilder.newUsecase( "Print balances" ) ); + UnitOfWork uow = module.unitOfWorkFactory().newUnitOfWork( UsecaseBuilder.newUsecase( "Print balances" ) ); try { @@ -109,7 +113,7 @@ public class TransferMoneyTest2 private static void bootstrapData() throws Exception { - UnitOfWork uow = module.newUnitOfWork( newUsecase( "Bootstrap data" ) ); + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "Bootstrap data" ) ); try { SavingsAccountEntity account = uow.newEntity( SavingsAccountEntity.class, SAVINGS_ACCOUNT_ID ); @@ -138,7 +142,7 @@ public class TransferMoneyTest2 public void transferHalfOfMoneyFromSavingsToChecking() throws Exception { - UnitOfWork uow = module.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); + UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); try { @@ -166,7 +170,7 @@ public class TransferMoneyTest2 public void transferTwiceOfMoneyFromSavingsToChecking() throws Exception { - UnitOfWork uow = module.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); + UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Transfer from savings to checking" ) ); try { @@ -194,7 +198,7 @@ public class TransferMoneyTest2 public void payAllBills() throws Exception { - UnitOfWork uow = module.newUnitOfWork( newUsecase( "Pay all bills from checking to creditors" ) ); + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "Pay all bills from checking to creditors" ) ); try { BalanceData source = uow.get( BalanceData.class, CHECKING_ACCOUNT_ID ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/EventsService.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/EventsService.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/EventsService.java index e232e59..d120cc5 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/EventsService.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/EventsService.java @@ -25,11 +25,12 @@ import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.service.ServiceComposite; import org.apache.zest.api.structure.Application; -import org.apache.zest.api.structure.Module; import org.apache.zest.api.unitofwork.UnitOfWork; import org.apache.zest.api.unitofwork.UnitOfWorkCallback; import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.api.value.ValueBuilder; +import org.apache.zest.api.value.ValueBuilderFactory; import org.apache.zest.functional.Iterables; import org.apache.zest.library.rest.server.api.ObjectSelection; import org.apache.zest.sample.forum.domainevent.DomainEventValue; @@ -47,7 +48,11 @@ public interface EventsService implements InvocationHandler { @Structure - Module module; + UnitOfWorkFactory uowf; + + @Structure + ValueBuilderFactory vbf; + @Structure Application application; @@ -55,9 +60,9 @@ public interface EventsService public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable { - UnitOfWork unitOfWork = module.currentUnitOfWork(); + UnitOfWork unitOfWork = uowf.currentUnitOfWork(); - ValueBuilder builder = module.newValueBuilder( DomainEventValue.class ); + ValueBuilder builder = vbf.newValueBuilder( DomainEventValue.class ); DomainEventValue prototype = builder.prototype(); prototype.version().set( application.version() ); prototype.timestamp().set( unitOfWork.currentTime() ); @@ -69,7 +74,7 @@ public interface EventsService { idx++; String name = "param" + idx; - ValueBuilder parameterBuilder = module.newValueBuilder( ParameterValue.class ); + ValueBuilder parameterBuilder = vbf.newValueBuilder( ParameterValue.class ); parameterBuilder.prototype().name().set( name ); parameterBuilder.prototype().value().set( arg ); prototype.parameters().get().add( parameterBuilder.newInstance() ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumAdministration.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumAdministration.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumAdministration.java index f4f61f7..8280726 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumAdministration.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumAdministration.java @@ -22,7 +22,9 @@ import org.apache.zest.api.constraint.Name; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.injection.scope.Uses; import org.apache.zest.api.query.Query; +import org.apache.zest.api.query.QueryBuilderFactory; import org.apache.zest.api.structure.Module; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.library.rest.server.api.ResourceIndex; import org.apache.zest.library.rest.server.api.dci.Role; import org.apache.zest.sample.forum.data.entity.Board; @@ -36,7 +38,10 @@ public class ForumAdministration implements ResourceIndex> { @Structure - Module module; + UnitOfWorkFactory uowf; + + @Structure + QueryBuilderFactory qbf; ForumAdmin forumAdmin = new ForumAdmin(); Administrator administrator = new Administrator(); @@ -61,17 +66,15 @@ public class ForumAdministration protected class ForumAdmin extends Role { - @Structure - Module module; public Query boards() { - return module.newQueryBuilder( Board.class ).newQuery( self.boards() ); + return qbf.newQueryBuilder( Board.class ).newQuery( self.boards() ); } public Board createBoard( String name ) { - Board board = module.currentUnitOfWork().newEntity( Board.class ); + Board board = uowf.currentUnitOfWork().newEntity( Board.class ); board.name().set( name ); administrator.makeModerator( board ); return board; http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumsAdministration.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumsAdministration.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumsAdministration.java index 7ed4e4e..64654b9 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumsAdministration.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/administration/ForumsAdministration.java @@ -22,7 +22,7 @@ import org.apache.zest.api.constraint.Name; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.injection.scope.Uses; import org.apache.zest.api.query.Query; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.library.rest.server.api.ResourceIndex; import org.apache.zest.library.rest.server.api.dci.Role; import org.apache.zest.sample.forum.data.entity.Forum; @@ -36,7 +36,7 @@ public class ForumsAdministration implements ResourceIndex> { @Structure - Module module; + UnitOfWorkFactory uowf; ForumsAdmin forumsAdmin = new ForumsAdmin(); Administrator administrator = new Administrator(); @@ -68,7 +68,7 @@ public class ForumsAdministration public Forum createForum( String name ) { - Forum forum = module.currentUnitOfWork().newEntity( Forum.class ); + Forum forum = uowf.currentUnitOfWork().newEntity( Forum.class ); forum.name().set( name ); administrator.makeModerator( forum ); return forum; http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/login/Login.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/login/Login.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/login/Login.java index bac5019..d18005f 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/login/Login.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/login/Login.java @@ -20,23 +20,33 @@ package org.apache.zest.sample.forum.context.login; import org.apache.zest.api.constraint.Name; import org.apache.zest.api.injection.scope.Structure; +import org.apache.zest.api.query.QueryBuilder; +import org.apache.zest.api.query.QueryBuilderFactory; import org.apache.zest.api.query.QueryExpressions; import org.apache.zest.api.structure.Module; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.sample.forum.data.entity.User; +import static org.apache.zest.api.query.QueryExpressions.*; + /** * TODO */ public class Login { @Structure - Module module; + UnitOfWorkFactory uowf; + + @Structure + QueryBuilderFactory qbf; public void login( @Name( "name" ) String name, @Name( "password" ) String password ) { - User user = module.currentUnitOfWork() - .newQuery( module.newQueryBuilder( User.class ) - .where( QueryExpressions.eq( QueryExpressions.templateFor( User.class ).name(), name ) ) ) + QueryBuilder builder = qbf.newQueryBuilder( User.class ) + .where( eq( templateFor( User.class ).name(), name ) ); + + User user = uowf.currentUnitOfWork() + .newQuery( builder ) .find(); if( user == null || !user.isCorrectPassword( password ) ) http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewBoard.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewBoard.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewBoard.java index 563f6b0..3730b11 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewBoard.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewBoard.java @@ -20,14 +20,14 @@ package org.apache.zest.sample.forum.context.view; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.injection.scope.Uses; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.library.rest.server.api.ResourceIndex; import org.apache.zest.library.rest.server.api.dci.Role; import org.apache.zest.sample.forum.data.Moderators; import org.apache.zest.sample.forum.data.entity.Board; -import org.apache.zest.sample.forum.data.entity.Topic; import org.apache.zest.sample.forum.data.entity.Forum; import org.apache.zest.sample.forum.data.entity.Post; +import org.apache.zest.sample.forum.data.entity.Topic; import org.apache.zest.sample.forum.data.entity.User; import static org.apache.zest.api.property.Numbers.add; @@ -94,15 +94,15 @@ public class ViewBoard extends Role { @Structure - Module module; + UnitOfWorkFactory uowf; Topic createTopic( String subject, String message, BoardViewer poster ) { - Topic topic = module.currentUnitOfWork().newEntity( Topic.class ); + Topic topic = uowf.currentUnitOfWork().newEntity( Topic.class ); topic.subject().set( subject ); - Post post = module.currentUnitOfWork().newEntity( Post.class ); + Post post = uowf.currentUnitOfWork().newEntity( Post.class ); post.message().set( message ); // Moderation checks http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewPost.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewPost.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewPost.java index 09adc3c..7df3a0e 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewPost.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/context/view/ViewPost.java @@ -22,7 +22,7 @@ import java.util.Date; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.injection.scope.Uses; import org.apache.zest.api.property.Numbers; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.library.rest.server.api.ResourceIndex; import org.apache.zest.library.rest.server.api.dci.Role; import org.apache.zest.sample.forum.data.entity.Post; @@ -62,14 +62,14 @@ public class ViewPost extends Role { @Structure - Module module; + UnitOfWorkFactory uowf; public Post reply( String message, PostView viewPost ) { - Post post = module.currentUnitOfWork().newEntity( Post.class ); + Post post = uowf.currentUnitOfWork().newEntity( Post.class ); post.message().set( message ); post.createdBy().set( poster.self() ); - post.createdOn().set( new Date( module.currentUnitOfWork().currentTime() ) ); + post.createdOn().set( new Date( uowf.currentUnitOfWork().currentTime() ) ); post.replyTo().set( viewPost.self() ); self().lastPost().set( post ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Forums.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Forums.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Forums.java index 6c5e785..fe446f8 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Forums.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Forums.java @@ -22,7 +22,8 @@ import org.apache.zest.api.entity.EntityComposite; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.query.Query; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.query.QueryBuilderFactory; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.sample.forum.data.Administrators; import static org.apache.zest.api.query.QueryExpressions.templateFor; @@ -42,12 +43,15 @@ public interface Forums implements Forums { @Structure - Module module; + UnitOfWorkFactory uowf; + + @Structure + QueryBuilderFactory qbf; public Query forums() { - return module.currentUnitOfWork() - .newQuery( module.newQueryBuilder( Forum.class ) ) + return uowf.currentUnitOfWork() + .newQuery( qbf.newQueryBuilder( Forum.class ) ) .orderBy( templateFor( Forum.class ).name() ); } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Users.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Users.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Users.java index b41f56f..0f18cfe 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Users.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/data/entity/Users.java @@ -23,7 +23,8 @@ import org.apache.zest.api.entity.EntityComposite; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.query.Query; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.query.QueryBuilderFactory; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.sample.forum.context.Events; import org.apache.zest.sample.forum.context.signup.Registration; @@ -47,28 +48,31 @@ public interface Users implements Users { @Structure - Module module; + UnitOfWorkFactory uowf; + + @Structure + QueryBuilderFactory qbf; @Override public Query users() { - return module.currentUnitOfWork() - .newQuery( module.newQueryBuilder( User.class ) ) + return uowf.currentUnitOfWork() + .newQuery( qbf.newQueryBuilder( User.class ) ) .orderBy( templateFor( User.class ).realName() ); } @Override public User userNamed( String name ) { - return module.currentUnitOfWork().newQuery( - module.newQueryBuilder( User.class ).where( eq( templateFor( User.class ).name(), name ) ) + return uowf.currentUnitOfWork().newQuery( + qbf.newQueryBuilder( User.class ).where( eq( templateFor( User.class ).name(), name ) ) ).find(); } @Override public void signedup( Registration registration ) { - EntityBuilder builder = module.currentUnitOfWork().newEntityBuilder( User.class ); + EntityBuilder builder = uowf.currentUnitOfWork().newEntityBuilder( User.class ); builder.instance().name().set( registration.name().get() ); builder.instance().realName().set( registration.realName().get() ); builder.instance().email().set( registration.email().get() ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/domainevent/DomainEvent.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/domainevent/DomainEvent.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/domainevent/DomainEvent.java index ed347f2..6cbec1a 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/domainevent/DomainEvent.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/domainevent/DomainEvent.java @@ -26,11 +26,12 @@ import org.apache.zest.api.concern.Concerns; import org.apache.zest.api.concern.GenericConcern; import org.apache.zest.api.injection.scope.Structure; import org.apache.zest.api.structure.Application; -import org.apache.zest.api.structure.Module; import org.apache.zest.api.unitofwork.UnitOfWork; import org.apache.zest.api.unitofwork.UnitOfWorkCallback; import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.api.value.ValueBuilder; +import org.apache.zest.api.value.ValueBuilderFactory; import org.apache.zest.functional.Iterables; import org.apache.zest.library.rest.server.api.ObjectSelection; import org.restlet.Request; @@ -46,7 +47,10 @@ public @interface DomainEvent extends GenericConcern { @Structure - Module module; + ValueBuilderFactory vbf; + + @Structure + UnitOfWorkFactory uowf; @Structure Application application; @@ -57,9 +61,9 @@ public @interface DomainEvent { Object result = next.invoke( proxy, method, args ); - UnitOfWork unitOfWork = module.currentUnitOfWork(); + UnitOfWork unitOfWork = uowf.currentUnitOfWork(); - ValueBuilder builder = module.newValueBuilder( DomainEventValue.class ); + ValueBuilder builder = vbf.newValueBuilder( DomainEventValue.class ); DomainEventValue prototype = builder.prototype(); prototype.version().set( application.version() ); prototype.timestamp().set( unitOfWork.currentTime() ); @@ -71,7 +75,7 @@ public @interface DomainEvent { idx++; String name = "param" + idx; - ValueBuilder parameterBuilder = module.newValueBuilder( ParameterValue.class ); + ValueBuilder parameterBuilder = vbf.newValueBuilder( ParameterValue.class ); parameterBuilder.prototype().name().set( name ); parameterBuilder.prototype().value().set( arg ); prototype.parameters().get().add( parameterBuilder.newInstance() ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/rest/ForumRestlet.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/rest/ForumRestlet.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/rest/ForumRestlet.java index c63077d..edf6fb1 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/rest/ForumRestlet.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/rest/ForumRestlet.java @@ -33,6 +33,6 @@ public class ForumRestlet @Override protected Uniform createRoot( Request request, Response response ) { - return module.newObject( RootResource.class, this ); + return objectFactory.newObject( RootResource.class, this ); } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/forum/src/main/java/org/apache/zest/sample/forum/service/BootstrapData.java ---------------------------------------------------------------------- diff --git a/samples/forum/src/main/java/org/apache/zest/sample/forum/service/BootstrapData.java b/samples/forum/src/main/java/org/apache/zest/sample/forum/service/BootstrapData.java index c220d91..c635717 100644 --- a/samples/forum/src/main/java/org/apache/zest/sample/forum/service/BootstrapData.java +++ b/samples/forum/src/main/java/org/apache/zest/sample/forum/service/BootstrapData.java @@ -25,10 +25,10 @@ import org.apache.zest.api.mixin.InitializationException; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.service.ServiceComposite; import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.api.structure.Module; import org.apache.zest.api.unitofwork.NoSuchEntityException; import org.apache.zest.api.unitofwork.UnitOfWork; import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.sample.forum.data.entity.Forums; import org.apache.zest.sample.forum.data.entity.Users; @@ -40,28 +40,27 @@ import org.apache.zest.sample.forum.data.entity.Users; public interface BootstrapData extends ServiceComposite { - + void insertInitialData() - throws Exception; + throws Exception; class Activator - extends ActivatorAdapter> + extends ActivatorAdapter> { @Override public void afterActivation( ServiceReference activated ) - throws Exception + throws Exception { activated.get().insertInitialData(); } - } - + abstract class Mixin implements BootstrapData { @Structure - Module module; + private UnitOfWorkFactory module; @Override public void insertInitialData() @@ -96,6 +95,5 @@ public interface BootstrapData throw new InitializationException( e ); } } - } } http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/samples/sql-support/src/main/java/org/apache/zest/sample/sqlsupport/Main.java ---------------------------------------------------------------------- diff --git a/samples/sql-support/src/main/java/org/apache/zest/sample/sqlsupport/Main.java b/samples/sql-support/src/main/java/org/apache/zest/sample/sqlsupport/Main.java index ddb2d3e..4592e17 100644 --- a/samples/sql-support/src/main/java/org/apache/zest/sample/sqlsupport/Main.java +++ b/samples/sql-support/src/main/java/org/apache/zest/sample/sqlsupport/Main.java @@ -72,14 +72,14 @@ public class Main try { - UnitOfWork uow = domainModule.newUnitOfWork(); + UnitOfWork uow = domainModule.unitOfWorkFactory().newUnitOfWork(); EntityBuilder builder = uow.newEntityBuilder( PretextEntity.class ); PretextEntity pretext = builder.instance(); pretext.reason().set( "Testing purpose" ); builder.newInstance(); uow.complete(); - uow = domainModule.newUnitOfWork(); + uow = domainModule.unitOfWorkFactory().newUnitOfWork(); QueryBuilder queryBuilder = domainModule.newQueryBuilder( PretextEntity.class ); queryBuilder = queryBuilder.where( eq( templateFor( PretextEntity.class ).reason(), "Testing purpose" ) ); Query query = uow.newQuery( queryBuilder ); @@ -107,7 +107,7 @@ public class Main { // EntityStore Data { - UnitOfWork uow = persistenceModule.newUnitOfWork(); + UnitOfWork uow = persistenceModule.unitOfWorkFactory().newUnitOfWork(); try { SQLConfiguration config = uow.get( SQLConfiguration.class, PostgreSQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY ); @@ -134,7 +134,7 @@ public class Main // Indexing Data { - UnitOfWork uow = persistenceModule.newUnitOfWork(); + UnitOfWork uow = persistenceModule.unitOfWorkFactory().newUnitOfWork(); try { SQLConfiguration config = uow.get( SQLConfiguration.class, PostgreSQLIndexQueryAssembler.DEFAULT_IDENTITY ); Connection connection = persistenceModule.findService( DataSource.class ).get().getConnection(); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tests/performance/src/main/java/org/apache/zest/test/performance/entitystore/AbstractEntityStorePerformanceTest.java ---------------------------------------------------------------------- diff --git a/tests/performance/src/main/java/org/apache/zest/test/performance/entitystore/AbstractEntityStorePerformanceTest.java b/tests/performance/src/main/java/org/apache/zest/test/performance/entitystore/AbstractEntityStorePerformanceTest.java index b35ace8..93eafd0 100644 --- a/tests/performance/src/main/java/org/apache/zest/test/performance/entitystore/AbstractEntityStorePerformanceTest.java +++ b/tests/performance/src/main/java/org/apache/zest/test/performance/entitystore/AbstractEntityStorePerformanceTest.java @@ -25,16 +25,16 @@ import java.io.FileWriter; import java.io.IOException; import java.util.Random; import java.util.concurrent.Callable; -import org.junit.Before; -import org.junit.Test; +import org.apache.zest.api.service.ServiceFinder; import org.apache.zest.api.structure.Application; import org.apache.zest.api.structure.Module; import org.apache.zest.api.unitofwork.UnitOfWork; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.bootstrap.ApplicationAssemblerAdapter; import org.apache.zest.bootstrap.Assembler; -import org.apache.zest.bootstrap.AssemblyException; import org.apache.zest.bootstrap.Energy4Java; -import org.apache.zest.bootstrap.ModuleAssembly; +import org.junit.Before; +import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,7 +49,8 @@ public abstract class AbstractEntityStorePerformanceTest private final Assembler infrastructure; private final Logger logger; private Application application; - protected Module module; + protected UnitOfWorkFactory uowf; + protected ServiceFinder serviceFinder; private final int ITERATIONS = 20000; @@ -66,23 +67,15 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( SimpleProduct.class ); - } - }; + Assembler assembler = module -> module.entities( SimpleProduct.class ); createZestRuntime( assembler ); for( int i = 0; i < 10000; i++ ) { - try( UnitOfWork uow = module.newUnitOfWork( newUsecase( "Warmup " + i ) ) ) + try (UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "Warmup " + i ) )) { SimpleProduct product = uow.newEntity( SimpleProduct.class ); - String id = product.identity().get(); + product.identity().get(); } } } @@ -103,42 +96,28 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( SimpleProduct.class ); - } - }; + Assembler assembler = module -> module.entities( SimpleProduct.class ); createZestRuntime( assembler ); - profile( new Callable() - { - @Override - public Void call() - throws Exception + profile( () -> { + Report report = new Report( storeName ); + report.start( "createEntityWithSingleProperty" ); + for( int i = 0; i < ITERATIONS; i++ ) { - Report report = new Report( storeName ); - report.start( "createEntityWithSingleProperty" ); - for( int i = 0; i < ITERATIONS; i++ ) + try (UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "createEntityWithSingleProperty " + i ) )) { - try( UnitOfWork uow = module.newUnitOfWork( newUsecase( "createEntityWithSingleProperty " + i ) ) ) - { - SimpleProduct product = uow.newEntity( SimpleProduct.class ); - String id = product.identity().get(); - uow.complete(); - } - if( i % 1000 == 0 ) - { - logger.info( "Iteration {}", i ); - } + SimpleProduct product = uow.newEntity( SimpleProduct.class ); + product.identity().get(); + uow.complete(); + } + if( i % 1000 == 0 ) + { + logger.info( "Iteration {}", i ); } - report.stop( ITERATIONS ); - writeReport( report ); - return null; } + report.stop( ITERATIONS ); + writeReport( report ); + return null; } ); } finally @@ -153,42 +132,28 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( SimpleProduct.class ); - } - }; + Assembler assembler = module -> module.entities( SimpleProduct.class ); createZestRuntime( assembler ); - profile( new Callable() - { - @Override - public Void call() - throws Exception + profile( () -> { + Report report = new Report( storeName ); + report.start( "createEntityInBulkWithSingleProperty" ); + int bulk = 0; + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "createEntityInBulkWithSingleProperty " + bulk ) ); + for( int i = 0; i < ITERATIONS; i++ ) { - Report report = new Report( storeName ); - report.start( "createEntityInBulkWithSingleProperty" ); - int bulk = 0; - UnitOfWork uow = module.newUnitOfWork( newUsecase( "createEntityInBulkWithSingleProperty " + bulk ) ); - for( int i = 0; i < ITERATIONS; i++ ) + SimpleProduct product = uow.newEntity( SimpleProduct.class ); + product.identity().get(); + if( i % 1000 == 0 ) { - SimpleProduct product = uow.newEntity( SimpleProduct.class ); - String id = product.identity().get(); - if( i % 1000 == 0 ) - { - uow.complete(); - bulk++; - uow = module.newUnitOfWork( newUsecase( "createEntityInBulkWithSingleProperty " + bulk ) ); - } + uow.complete(); + bulk++; + uow = uowf.newUnitOfWork( newUsecase( "createEntityInBulkWithSingleProperty " + bulk ) ); } - uow.complete(); - report.stop( ITERATIONS ); - writeReport( report ); - return null; } + uow.complete(); + report.stop( ITERATIONS ); + writeReport( report ); + return null; } ); } finally @@ -203,37 +168,23 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( ComplexProduct.class ); - } - }; + Assembler assembler = module -> module.entities( ComplexProduct.class ); createZestRuntime( assembler ); - profile( new Callable() - { - @Override - public Void call() - throws Exception + profile( () -> { + Report report = new Report( storeName ); + report.start( "createEntityWithComplexType" ); + for( int i = 0; i < ITERATIONS; i++ ) { - Report report = new Report( storeName ); - report.start( "createEntityWithComplexType" ); - for( int i = 0; i < ITERATIONS; i++ ) + try (UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "createEntityWithComplexType " + i ) )) { - try( UnitOfWork uow = module.newUnitOfWork( newUsecase( "createEntityWithComplexType " + i ) ) ) - { - ComplexProduct product = uow.newEntity( ComplexProduct.class ); - String id = product.identity().get(); - uow.complete(); - } + ComplexProduct product = uow.newEntity( ComplexProduct.class ); + product.identity().get(); + uow.complete(); } - report.stop( ITERATIONS ); - writeReport( report ); - return null; } + report.stop( ITERATIONS ); + writeReport( report ); + return null; } ); } finally @@ -248,42 +199,28 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( ComplexProduct.class ); - } - }; + Assembler assembler = module -> module.entities( ComplexProduct.class ); createZestRuntime( assembler ); - profile( new Callable() - { - @Override - public Void call() - throws Exception + profile( () -> { + Report report = new Report( storeName ); + report.start( "createEntityInBulkWithComplexType" ); + int bulk = 0; + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "createEntityInBulkWithComplexType " + bulk ) ); + for( int i = 0; i < ITERATIONS; i++ ) { - Report report = new Report( storeName ); - report.start( "createEntityInBulkWithComplexType" ); - int bulk = 0; - UnitOfWork uow = module.newUnitOfWork( newUsecase( "createEntityInBulkWithComplexType " + bulk ) ); - for( int i = 0; i < ITERATIONS; i++ ) + ComplexProduct product = uow.newEntity( ComplexProduct.class ); + product.identity().get(); + if( i % 1000 == 0 ) { - ComplexProduct product = uow.newEntity( ComplexProduct.class ); - String id = product.identity().get(); - if( i % 1000 == 0 ) - { - uow.complete(); - bulk++; - uow = module.newUnitOfWork( newUsecase( "createEntityInBulkWithComplexType " + bulk ) ); - } + uow.complete(); + bulk++; + uow = uowf.newUnitOfWork( newUsecase( "createEntityInBulkWithComplexType " + bulk ) ); } - uow.complete(); - report.stop( ITERATIONS ); - writeReport( report ); - return null; } + uow.complete(); + report.stop( ITERATIONS ); + writeReport( report ); + return null; } ); } finally @@ -298,19 +235,11 @@ public abstract class AbstractEntityStorePerformanceTest { try { - Assembler assembler = new Assembler() - { - @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException - { - module.entities( ComplexProduct.class ); - } - }; + Assembler assembler = module -> module.entities( ComplexProduct.class ); createZestRuntime( assembler ); { int bulk = 0; - UnitOfWork uow = module.newUnitOfWork( newUsecase( "readEntityWithComplexType PREPARE " + bulk ) ); + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "readEntityWithComplexType PREPARE " + bulk ) ); for( int i = 0; i < ITERATIONS; i++ ) { ComplexProduct product = uow.newEntity( ComplexProduct.class, "product" + i ); @@ -320,42 +249,34 @@ public abstract class AbstractEntityStorePerformanceTest { uow.complete(); bulk++; - uow = module.newUnitOfWork( newUsecase( "readEntityWithComplexType PREPARE " + bulk ) ); + uow = uowf.newUnitOfWork( newUsecase( "readEntityWithComplexType PREPARE " + bulk ) ); } } uow.complete(); } - profile( new Callable() - { - @Override - public Void call() - throws Exception + profile( () -> { + Report report = new Report( storeName ); + int bulk = 0; + UnitOfWork uow = uowf.newUnitOfWork( newUsecase( "readEntityWithComplexType " + bulk ) ); + Random rnd = new Random(); + report.start( "readEntityWithComplexType" ); + String id = rnd.nextInt( ITERATIONS ) + ""; + for( int i = 0; i < ITERATIONS; i++ ) { - Report report = new Report( storeName ); - int bulk = 0; - UnitOfWork uow = module.newUnitOfWork( newUsecase( "readEntityWithComplexType " + bulk ) ); - Random rnd = new Random(); - report.start( "readEntityWithComplexType" ); - String id = rnd.nextInt( ITERATIONS ) + ""; - for( int i = 0; i < ITERATIONS; i++ ) + ComplexProduct product = uow.get( ComplexProduct.class, "product" + id ); + product.name().get(); + if( i % 100 == 0 ) { - ComplexProduct product = uow.get( ComplexProduct.class, "product" + id ); - - String name = product.name().get(); - - if( i % 100 == 0 ) - { - uow.discard(); - bulk++; - uow = module.newUnitOfWork( newUsecase( "readEntityWithComplexType " + bulk ) ); - } + uow.discard(); + bulk++; + uow = uowf.newUnitOfWork( newUsecase( "readEntityWithComplexType " + bulk ) ); } - uow.complete(); - report.stop( ITERATIONS ); - writeReport( report ); - return null; } + uow.complete(); + report.stop( ITERATIONS ); + writeReport( report ); + return null; } ); } finally @@ -376,10 +297,13 @@ public abstract class AbstractEntityStorePerformanceTest throws IOException { File dir = new File( "build/reports/perf/" ); - dir.mkdirs(); + if( !dir.mkdirs() ) + { + System.out.println( "Couldn't create Performance result directory." ); + } String name = dir.getAbsolutePath() + "/result-" + report.name() + ".xml"; FileWriter writer = new FileWriter( name, true ); - try( BufferedWriter out = new BufferedWriter( writer ) ) + try (BufferedWriter out = new BufferedWriter( writer )) { report.writeTo( out ); out.flush(); @@ -392,20 +316,21 @@ public abstract class AbstractEntityStorePerformanceTest { Energy4Java zest = new Energy4Java(); Assembler[][][] assemblers = new Assembler[][][] - { { { - infrastructure, testSetup + { + infrastructure, testSetup + } } - } - }; + }; application = zest.newApplication( new ApplicationAssemblerAdapter( assemblers ) { } ); application.activate(); Module moduleInstance = application.findModule( "Layer 1", "Module 1" ); - module = moduleInstance; + uowf = moduleInstance.unitOfWorkFactory(); + serviceFinder = moduleInstance; } protected void cleanUp() @@ -413,10 +338,10 @@ public abstract class AbstractEntityStorePerformanceTest { try { - if( module != null && module.isUnitOfWorkActive() ) + if( uowf != null && uowf.isUnitOfWorkActive() ) { UnitOfWork current; - while( module.isUnitOfWorkActive() && ( current = module.currentUnitOfWork() ) != null ) + while( uowf.isUnitOfWorkActive() && ( current = uowf.currentUnitOfWork() ) != null ) { if( current.isOpen() ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/DerbySQLEntityStorePerformanceTest.java ---------------------------------------------------------------------- diff --git a/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/DerbySQLEntityStorePerformanceTest.java b/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/DerbySQLEntityStorePerformanceTest.java index 180ee27..3abd538 100644 --- a/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/DerbySQLEntityStorePerformanceTest.java +++ b/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/DerbySQLEntityStorePerformanceTest.java @@ -87,17 +87,17 @@ public class DerbySQLEntityStorePerformanceTest protected void cleanUp() throws Exception { - if( module == null ) + if( uowf == null ) { return; } - UnitOfWork uow = this.module.newUnitOfWork( UsecaseBuilder.newUsecase( + UnitOfWork uow = this.uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Delete " + getClass().getSimpleName() + " test data" ) ); try { SQLConfiguration config = uow.get( SQLConfiguration.class, DerbySQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY ); - Connection connection = module.findService( DataSource.class ).get().getConnection(); + Connection connection = serviceFinder.findService( DataSource.class ).get().getConnection(); String schemaName = config.schemaName().get(); if( schemaName == null ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/PostgreSQLEntityStorePerformanceTest.java ---------------------------------------------------------------------- diff --git a/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/PostgreSQLEntityStorePerformanceTest.java b/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/PostgreSQLEntityStorePerformanceTest.java index 47238a8..3e04c01 100644 --- a/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/PostgreSQLEntityStorePerformanceTest.java +++ b/tests/performance/src/perf/java/org/apache/zest/test/performance/entitystore/sql/PostgreSQLEntityStorePerformanceTest.java @@ -115,7 +115,7 @@ public class PostgreSQLEntityStorePerformanceTest application.activate(); Module moduleInstance = application.findModule( "Layer 1", "config" ); - UnitOfWorkFactory uowf = moduleInstance; + UnitOfWorkFactory uowf = moduleInstance.unitOfWorkFactory(); UnitOfWork uow = uowf.newUnitOfWork(); try { http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tests/performance/src/perf/java/org/apache/zest/test/performance/indexing/rdf/QueryPerformanceTest.java ---------------------------------------------------------------------- diff --git a/tests/performance/src/perf/java/org/apache/zest/test/performance/indexing/rdf/QueryPerformanceTest.java b/tests/performance/src/perf/java/org/apache/zest/test/performance/indexing/rdf/QueryPerformanceTest.java index 321f30f..912172e 100644 --- a/tests/performance/src/perf/java/org/apache/zest/test/performance/indexing/rdf/QueryPerformanceTest.java +++ b/tests/performance/src/perf/java/org/apache/zest/test/performance/indexing/rdf/QueryPerformanceTest.java @@ -20,6 +20,8 @@ package org.apache.zest.test.performance.indexing.rdf; import java.io.File; import org.apache.derby.iapi.services.io.FileUtil; +import org.apache.zest.api.query.QueryBuilderFactory; +import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -70,6 +72,7 @@ public class QueryPerformanceTest private Application application; private Module module; + private UnitOfWorkFactory uowf; private static final String QUERY1 = "PREFIX ns0: \n" + "PREFIX rdf: \n" + "PREFIX rdfs: \n" @@ -136,6 +139,7 @@ public class QueryPerformanceTest module = application.findModule( LAYER_DOMAIN, MODULE_DOMAIN ); application.activate(); indexingDataDir = module.findService( RdfIndexingService.class ).get().dataDir(); + uowf = module.unitOfWorkFactory(); } @After @@ -196,7 +200,7 @@ public class QueryPerformanceTest private LeadRepository populateEntityStore() throws UnitOfWorkCompletionException { - UnitOfWork uow = module.newUnitOfWork(); + UnitOfWork uow = uowf.newUnitOfWork(); try { LeadRepository leadRepo = module.findService( LeadRepositoryService.class ).get(); @@ -212,7 +216,7 @@ public class QueryPerformanceTest { System.out.print( "\r" + i ); uow.complete(); - uow = module.newUnitOfWork(); + uow = uowf.newUnitOfWork(); } leadFactory.create( "Lead" + i ); } @@ -237,7 +241,7 @@ public class QueryPerformanceTest { long start; long end; - try( UnitOfWork uow = module.newUnitOfWork() ) + try( UnitOfWork uow = uowf.newUnitOfWork() ) { start = System.currentTimeMillis(); Lead lead = leadRepo.findByName( nameOfEntity ); @@ -258,7 +262,7 @@ public class QueryPerformanceTest { long start; long end; - try( UnitOfWork uow = module.newUnitOfWork() ) + try( UnitOfWork uow = uowf.newUnitOfWork() ) { start = System.currentTimeMillis(); Lead lead = leadRepo.findByFixedQuery( queryName ); @@ -338,12 +342,12 @@ public class QueryPerformanceTest implements LeadEntityFactory { @Structure - private Module module; + private UnitOfWorkFactory uowf; @Override public Lead create( String name ) { - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); EntityBuilder builder = uow.newEntityBuilder( LeadEntity.class ); Lead prototype = builder.instanceFor( LeadEntity.class ); prototype.name().set( name ); @@ -368,21 +372,24 @@ public class QueryPerformanceTest implements LeadRepository { @Structure - private Module module; + private QueryBuilderFactory qbf; + + @Structure + private UnitOfWorkFactory uowf; @Override public Lead findByFixedQuery( String queryString ) { - UnitOfWork uow = module.currentUnitOfWork(); - Query query = uow.newQuery( module.newQueryBuilder( Lead.class ).where( SesameExpressions.sparql( queryString ) ) ); + UnitOfWork uow = uowf.currentUnitOfWork(); + Query query = uow.newQuery( qbf.newQueryBuilder( Lead.class ).where( SesameExpressions.sparql( queryString ) ) ); return query.find(); } @Override public Lead findByName( String name ) { - UnitOfWork uow = module.currentUnitOfWork(); - QueryBuilder builder = module.newQueryBuilder( Lead.class ); + UnitOfWork uow = uowf.currentUnitOfWork(); + QueryBuilder builder = qbf.newQueryBuilder( Lead.class ); Lead template = templateFor( Lead.class ); Query query = uow.newQuery( builder.where( eq( template.name(), name ) ) ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tools/envisage/src/main/resources/org/apache/zest/envisage/tree/TreeModelCellRenderer.properties ---------------------------------------------------------------------- diff --git a/tools/envisage/src/main/resources/org/apache/zest/envisage/tree/TreeModelCellRenderer.properties b/tools/envisage/src/main/resources/org/apache/zest/envisage/tree/TreeModelCellRenderer.properties index b694372..4e5c3f6 100644 --- a/tools/envisage/src/main/resources/org/apache/zest/envisage/tree/TreeModelCellRenderer.properties +++ b/tools/envisage/src/main/resources/org/apache/zest/envisage/tree/TreeModelCellRenderer.properties @@ -15,7 +15,7 @@ ICON_Application=application.png ICON_Layer=layer.png -ICON_Module=module.png +ICON_Module=unitOfWorkFactory.png ICON_Service=service.png ICON_ImportedService=importedService.png ICON_Entity=entity.png http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tools/envisage/src/test/java/org/apache/zest/envisage/sample/EnvisageSample.java ---------------------------------------------------------------------- diff --git a/tools/envisage/src/test/java/org/apache/zest/envisage/sample/EnvisageSample.java b/tools/envisage/src/test/java/org/apache/zest/envisage/sample/EnvisageSample.java index ddf04b3..80a2cd6 100644 --- a/tools/envisage/src/test/java/org/apache/zest/envisage/sample/EnvisageSample.java +++ b/tools/envisage/src/test/java/org/apache/zest/envisage/sample/EnvisageSample.java @@ -75,7 +75,7 @@ public class EnvisageSample public void createTestData() { - UnitOfWork uow = module.newUnitOfWork(); + UnitOfWork uow = uowf.newUnitOfWork(); try { createCar( "Volvo", "S80", 2007 ); @@ -101,7 +101,7 @@ public class EnvisageSample private String createCar( String manufacturer, String model, int year ) { - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); EntityBuilder builder = uow.newEntityBuilder( Car.class ); Car prototype = builder.instanceFor( CarEntity.class ); prototype.manufacturer().set( manufacturer ); @@ -113,7 +113,7 @@ public class EnvisageSample private String createAnimal( String name, String sound ) { - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = uowf.currentUnitOfWork(); EntityBuilder builder = uow.newEntityBuilder( Animal.class ); Animal prototype = builder.instanceFor( AnimalEntity.class ); prototype.name().set( name ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tools/model-detail/src/test/java/org/apache/zest/tools/model/VisitableDetailTest.java ---------------------------------------------------------------------- diff --git a/tools/model-detail/src/test/java/org/apache/zest/tools/model/VisitableDetailTest.java b/tools/model-detail/src/test/java/org/apache/zest/tools/model/VisitableDetailTest.java index e91636b..98e4a7d 100644 --- a/tools/model-detail/src/test/java/org/apache/zest/tools/model/VisitableDetailTest.java +++ b/tools/model-detail/src/test/java/org/apache/zest/tools/model/VisitableDetailTest.java @@ -51,24 +51,18 @@ public class VisitableDetailTest throws AssemblyException, ActivationException { ApplicationDescriptor application = new Energy4Java().newApplicationModel( - new ApplicationAssembler() - { - @Override - public ApplicationAssembly assemble( ApplicationAssemblyFactory applicationFactory ) - throws AssemblyException - { - ApplicationAssembly app = applicationFactory.newApplicationAssembly(); - app.setName( "UnderTestApp" ); - app.withActivators( ApplicationActivator.class ); + applicationFactory -> { + ApplicationAssembly app = applicationFactory.newApplicationAssembly(); + app.setName( "UnderTestApp" ); + app.withActivators( ApplicationActivator.class ); - LayerAssembly layer = app.layer( "LayerName" ); - layer.withActivators( LayerActivator.class ); + LayerAssembly layer = app.layer( "LayerName" ); + layer.withActivators( LayerActivator.class ); - ModuleAssembly module = layer.module( "ModuleName" ); - module.withActivators( ModuleActivator.class ); + ModuleAssembly module = layer.module( "ModuleName" ); + module.withActivators( ModuleActivator.class ); - return app; - } + return app; } ); ApplicationDetailDescriptor detail = createApplicationDetailDescriptor( application ); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest4.java ---------------------------------------------------------------------- diff --git a/tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest4.java b/tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest4.java index 3ce8125..8c31e1b 100644 --- a/tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest4.java +++ b/tutorials/hello/src/test/java/org/apache/zest/tutorials/hello/HelloTest4.java @@ -37,7 +37,7 @@ public class HelloTest4 extends AbstractZestTest @Test public void givenHelloValueInitializedToHelloWorldWhenCallingSayExpectHelloWorld() { - UnitOfWork uow = module.newUnitOfWork(); + UnitOfWork uow = uowf.newUnitOfWork(); try { EntityBuilder builder = uow.newEntityBuilder( Hello.class, "123" ); @@ -45,7 +45,7 @@ public class HelloTest4 extends AbstractZestTest builder.instanceFor( Hello.State.class ).name().set( "World" ); builder.newInstance(); uow.complete(); - uow = module.newUnitOfWork(); + uow = uowf.newUnitOfWork(); Hello underTest = uow.get( Hello.class, "123" ); String result = underTest.say(); uow.complete(); http://git-wip-us.apache.org/repos/asf/zest-java/blob/a5be013f/tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java ---------------------------------------------------------------------- diff --git a/tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java b/tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java index d71b98c..26a0a92 100644 --- a/tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java +++ b/tutorials/introduction/thirtyminutes/src/main/java/org/apache/zest/demo/thirtyminutes/ThirtyMinutesDocs.java @@ -33,10 +33,11 @@ import org.apache.zest.api.injection.scope.This; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.property.Property; import org.apache.zest.api.query.Query; -import org.apache.zest.api.structure.Module; +import org.apache.zest.api.query.QueryBuilderFactory; import org.apache.zest.api.unitofwork.UnitOfWork; import org.apache.zest.api.unitofwork.UnitOfWorkFactory; import org.apache.zest.api.value.ValueBuilder; +import org.apache.zest.api.value.ValueBuilderFactory; import org.apache.zest.api.value.ValueComposite; import org.apache.zest.demo.tenminute.Confirmable; import org.apache.zest.demo.tenminute.HasCustomer; @@ -56,7 +57,9 @@ import org.apache.zest.api.query.QueryBuilder; // END SNIPPET: 6 public class ThirtyMinutesDocs { - Module module; + private QueryBuilderFactory queryBuilderFactory; + private ValueBuilderFactory valueBuilderFactory; + private UnitOfWorkFactory unitOfWorkFactory; // START SNIPPET: 6 @Structure private UnitOfWorkFactory uowFactory; //Injected @@ -65,7 +68,7 @@ public class ThirtyMinutesDocs { // START SNIPPET: 6 UnitOfWork uow = uowFactory.currentUnitOfWork(); - QueryBuilder builder = module.newQueryBuilder( Order.class ); + QueryBuilder builder = queryBuilderFactory.newQueryBuilder( Order.class ); String orderNumber = "12345"; HasSequenceNumber template = templateFor( HasSequenceNumber.class ); @@ -94,10 +97,10 @@ public class ThirtyMinutesDocs { Report report = null; - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = unitOfWorkFactory.currentUnitOfWork(); // START SNIPPET: 7 - QueryBuilder builder = module.newQueryBuilder( Order.class ); + QueryBuilder builder = queryBuilderFactory.newQueryBuilder( Order.class ); Calendar cal = Calendar.getInstance(); cal.setTime( new Date() ); @@ -116,10 +119,10 @@ public class ThirtyMinutesDocs { Report report = null; - UnitOfWork uow = module.currentUnitOfWork(); + UnitOfWork uow = unitOfWorkFactory.currentUnitOfWork(); // START SNIPPET: 8 - QueryBuilder builder = module.newQueryBuilder( HasCustomer.class ); + QueryBuilder builder = queryBuilderFactory.newQueryBuilder( HasCustomer.class ); Calendar cal = Calendar.getInstance(); cal.setTime( new Date() ); @@ -200,7 +203,7 @@ public class ThirtyMinutesDocs private Action addAction( M item, Action.Type type ) { ValueBuilder builder = - module.newValueBuilder(Action.class); // [4] + valueBuilderFactory.newValueBuilder( Action.class); // [4] Action prototype = builder.prototypeFor( Action.class ); prototype.item().set( item ); prototype.action().set( type );