You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2016/04/14 08:13:11 UTC
[05/34] 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 declaratio
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<HandlingEventEntity> events = tempUow.newQuery( module.newQueryBuilder( HandlingEventEntity.class ) );
+ tempUow = uowf.newUnitOfWork();
+ Query<HandlingEventEntity> 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<DomainEventValue> builder = module.newValueBuilder( DomainEventValue.class );
+ ValueBuilder<DomainEventValue> 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<ParameterValue> parameterBuilder = module.newValueBuilder( ParameterValue.class );
+ ValueBuilder<ParameterValue> 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<Query<Board>>
{
@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<Forum>
{
- @Structure
- Module module;
public Query<Board> 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<Query<Forum>>
{
@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<User> 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<Board>
{
@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<Topic>
{
@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<Forum> 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<User> 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<User> builder = module.currentUnitOfWork().newEntityBuilder( User.class );
+ EntityBuilder<User> 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<DomainEventValue> builder = module.newValueBuilder( DomainEventValue.class );
+ ValueBuilder<DomainEventValue> 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<ParameterValue> parameterBuilder = module.newValueBuilder( ParameterValue.class );
+ ValueBuilder<ParameterValue> 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<ServiceReference<BootstrapData>>
+ extends ActivatorAdapter<ServiceReference<BootstrapData>>
{
@Override
public void afterActivation( ServiceReference<BootstrapData> 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<PretextEntity> 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<PretextEntity> queryBuilder = domainModule.newQueryBuilder( PretextEntity.class );
queryBuilder = queryBuilder.where( eq( templateFor( PretextEntity.class ).reason(), "Testing purpose" ) );
Query<PretextEntity> 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<Void>()
- {
- @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<Void>()
- {
- @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<Void>()
- {
- @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<Void>()
- {
- @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<Void>()
- {
- @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: <urn:zest:type:org.apache.zest.api.entity.Identity#> \n"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \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<LeadEntity> 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<Lead> query = uow.newQuery( module.newQueryBuilder( Lead.class ).where( SesameExpressions.sparql( queryString ) ) );
+ UnitOfWork uow = uowf.currentUnitOfWork();
+ Query<Lead> 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<Lead> builder = module.newQueryBuilder( Lead.class );
+ UnitOfWork uow = uowf.currentUnitOfWork();
+ QueryBuilder<Lead> builder = qbf.newQueryBuilder( Lead.class );
Lead template = templateFor( Lead.class );
Query<Lead> 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<Car> 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<Animal> 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<Hello> 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<Order> builder = module.newQueryBuilder( Order.class );
+ QueryBuilder<Order> 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<Order> builder = module.newQueryBuilder( Order.class );
+ QueryBuilder<Order> 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<HasCustomer> builder = module.newQueryBuilder( HasCustomer.class );
+ QueryBuilder<HasCustomer> builder = queryBuilderFactory.newQueryBuilder( HasCustomer.class );
Calendar cal = Calendar.getInstance();
cal.setTime( new Date() );
@@ -200,7 +203,7 @@ public class ThirtyMinutesDocs
private Action<M> addAction( M item, Action.Type type )
{
ValueBuilder<Action> builder =
- module.newValueBuilder(Action.class); // [4]
+ valueBuilderFactory.newValueBuilder( Action.class); // [4]
Action<M> prototype = builder.prototypeFor( Action.class );
prototype.item().set( item );
prototype.action().set( type );