Skip to content

Commit f07b08b

Browse files
Merge pull request #126 from SpineEventEngine/repos-post-events
Repos post events (plus refactoring)
2 parents 5ae42af + 970e17d commit f07b08b

File tree

71 files changed

+1143
-1192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1143
-1192
lines changed

.idea/codeStyleSettings.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/src/main/java/org/spine3/base/Events.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.google.protobuf.Timestamp;
2626
import org.spine3.protobuf.Messages;
2727
import org.spine3.protobuf.Timestamps;
28-
import org.spine3.type.EventClass;
2928

3029
import javax.annotation.Nullable;
3130
import java.util.Collections;
@@ -105,15 +104,6 @@ public static Message getMessage(Event event) {
105104
return result;
106105
}
107106

108-
/**
109-
* Determines the class of the event from the passed event record.
110-
*/
111-
public static EventClass getEventClass(Event event) {
112-
final Message message = getMessage(event);
113-
final EventClass result = EventClass.of(message);
114-
return result;
115-
}
116-
117107
/**
118108
* Obtains the actor user ID from the passed {@code EventContext}.
119109
*

client/src/main/java/org/spine3/base/Responses.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,23 @@ public static Response ok() {
4747
}
4848

4949
/**
50-
* @return {@code true} if the passed response represents `ok` status.
50+
* @return {@code true} if the passed response represents `ok` status,
51+
* {@code false} otherwise
5152
*/
5253
public static boolean isOk(Response response) {
5354
final boolean result = response.getStatusCase() == Response.StatusCase.OK;
5455
return result;
5556
}
57+
58+
/**
59+
* @return {@code true} if the passed response represents `unsupported command` error,
60+
* {@code false} otherwise
61+
*/
62+
public static boolean isUnsupportedCommand(Response response) {
63+
if (response.getStatusCase() == Response.StatusCase.ERROR) {
64+
final Error error = response.getError();
65+
return error.getCode() == CommandValidationError.UNSUPPORTED_COMMAND.getNumber();
66+
}
67+
return false;
68+
}
5669
}

examples/build.gradle

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ buildscript {
33
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
44
}
55
dependencies {
6-
classpath group: 'org.spine3.tools', name: 'protobuf-plugin', version: '1.2', changing: true
6+
classpath group: 'org.spine3.tools', name: 'protobuf-plugin', version: '1.3.1', changing: true
77
}
88
}
99

@@ -16,4 +16,16 @@ dependencies {
1616
compile project(path: ':server');
1717
}
1818

19+
protobuf {
20+
generateProtoTasks {
21+
all().each { final task ->
22+
task.plugins {
23+
task.generateDescriptorSet = true
24+
task.descriptorSetOptions.path = "${projectDir}/build/descriptors/${task.sourceSet.name}.desc"
25+
task.descriptorSetOptions.includeImports = true
26+
}
27+
}
28+
}
29+
}
30+
1931
apply plugin: 'org.spine3.tools.protobuf-plugin';

examples/src/main/java/org/spine3/examples/aggregate/server/Application.java

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020

2121
package org.spine3.examples.aggregate.server;
2222

23-
import com.google.common.base.Function;
2423
import com.google.common.util.concurrent.MoreExecutors;
24+
import io.grpc.stub.StreamObserver;
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
2727
import org.spine3.base.Command;
28+
import org.spine3.base.Response;
2829
import org.spine3.examples.aggregate.Client;
29-
import org.spine3.examples.aggregate.OrderId;
3030
import org.spine3.server.BoundedContext;
3131
import org.spine3.server.command.CommandBus;
3232
import org.spine3.server.command.CommandStore;
@@ -35,14 +35,9 @@
3535
import org.spine3.server.storage.StorageFactory;
3636
import org.spine3.server.storage.memory.InMemoryStorageFactory;
3737

38-
import javax.annotation.Nullable;
3938
import java.io.IOException;
4039
import java.util.List;
4140

42-
import static com.google.common.base.Strings.isNullOrEmpty;
43-
import static org.spine3.base.Identifiers.ConverterRegistry;
44-
import static org.spine3.base.Identifiers.NULL_ID_OR_FIELD;
45-
4641
/**
4742
* A sample application showing basic usage of the framework.
4843
*
@@ -105,9 +100,23 @@ public void execute() {
105100
// Generate test requests
106101
final List<Command> requests = Client.generateRequests();
107102

103+
final StreamObserver<Response> responseObserver = new StreamObserver<Response>() {
104+
@Override
105+
public void onNext(Response response) {
106+
}
107+
108+
@Override
109+
public void onError(Throwable throwable) {
110+
}
111+
112+
@Override
113+
public void onCompleted() {
114+
}
115+
};
116+
108117
// Process requests
109118
for (Command request : requests) {
110-
boundedContext.process(request);
119+
boundedContext.post(request, responseObserver);
111120
}
112121

113122
log().info("All the requests were handled.");
@@ -125,10 +134,6 @@ public void setUp() {
125134

126135
// Register event handlers.
127136
boundedContext.getEventBus().subscribe(eventLogger);
128-
129-
//TODO:2015-11-10:alexander.yevsyukov: This must be called by the repository or something belonging to business logic.
130-
// Register id converters
131-
ConverterRegistry.getInstance().register(OrderId.class, new OrderIdToStringConverter());
132137
}
133138

134139
/**
@@ -143,21 +148,6 @@ public BoundedContext getBoundedContext() {
143148
return boundedContext;
144149
}
145150

146-
private static class OrderIdToStringConverter implements Function<OrderId, String> {
147-
148-
@Override
149-
public String apply(@Nullable OrderId orderId) {
150-
if (orderId == null) {
151-
return NULL_ID_OR_FIELD;
152-
}
153-
final String value = orderId.getValue();
154-
if (isNullOrEmpty(value) || value.trim().isEmpty()) {
155-
return NULL_ID_OR_FIELD;
156-
}
157-
return value;
158-
}
159-
}
160-
161151
private static Logger log() {
162152
return LogSingleton.INSTANCE.value;
163153
}

examples/src/main/java/org/spine3/examples/aggregate/server/EventLogger.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@
2828
import org.spine3.examples.aggregate.event.OrderLineAdded;
2929
import org.spine3.examples.aggregate.event.OrderPaid;
3030
import org.spine3.protobuf.Messages;
31-
import org.spine3.server.EventHandler;
32-
import org.spine3.server.Subscribe;
31+
import org.spine3.server.event.EventHandler;
32+
import org.spine3.server.event.Subscribe;
3333

3434
/**
3535
* A sample of event handler class that logs some of the events.
3636
*
3737
* @author Mikhail Melnik
3838
*/
3939
@SuppressWarnings({"InstanceMethodNamingConvention", "TypeMayBeWeakened", "UnusedParameters"})
40-
class EventLogger implements EventHandler {
40+
class EventLogger extends EventHandler {
4141

4242
private static final String NEW_LINE = System.lineSeparator();
4343

examples/src/main/java/org/spine3/examples/aggregate/server/OrderAggregate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
import org.spine3.examples.aggregate.event.OrderCreated;
3030
import org.spine3.examples.aggregate.event.OrderLineAdded;
3131
import org.spine3.examples.aggregate.event.OrderPaid;
32-
import org.spine3.server.Assign;
3332
import org.spine3.server.aggregate.Aggregate;
3433
import org.spine3.server.aggregate.Apply;
34+
import org.spine3.server.command.Assign;
3535

3636
/**
3737
* @author Mikhail Melnik

examples/src/main/java/org/spine3/examples/aggregate/server/OrderRepository.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,41 @@
1919
*/
2020
package org.spine3.examples.aggregate.server;
2121

22+
import com.google.common.base.Function;
23+
import org.spine3.base.Identifiers;
2224
import org.spine3.examples.aggregate.OrderId;
2325
import org.spine3.server.BoundedContext;
2426
import org.spine3.server.aggregate.AggregateRepository;
2527

28+
import javax.annotation.Nullable;
29+
30+
import static com.google.common.base.Strings.isNullOrEmpty;
31+
import static org.spine3.base.Identifiers.NULL_ID_OR_FIELD;
32+
2633
/**
2734
* @author Mikhail Melnik
2835
*/
2936
public class OrderRepository extends AggregateRepository<OrderId, OrderAggregate> {
3037

3138
public OrderRepository(BoundedContext boundedContext) {
3239
super(boundedContext);
40+
41+
// Register id converters
42+
Identifiers.ConverterRegistry.getInstance().register(OrderId.class, new OrderIdToStringConverter());
43+
}
44+
45+
private static class OrderIdToStringConverter implements Function<OrderId, String> {
46+
47+
@Override
48+
public String apply(@Nullable OrderId orderId) {
49+
if (orderId == null) {
50+
return NULL_ID_OR_FIELD;
51+
}
52+
final String value = orderId.getValue();
53+
if (isNullOrEmpty(value) || value.trim().isEmpty()) {
54+
return NULL_ID_OR_FIELD;
55+
}
56+
return value;
57+
}
3358
}
3459
}

examples/src/main/java/org/spine3/examples/failure/TaskAggregate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import org.spine3.examples.failure.commands.CancelTask;
2525
import org.spine3.examples.failure.events.TaskCancelled;
2626
import org.spine3.examples.failure.failures.CannotCancelTaskInProgress;
27-
import org.spine3.server.Assign;
2827
import org.spine3.server.aggregate.Aggregate;
28+
import org.spine3.server.command.Assign;
2929

3030
/**
3131
* A sample of the aggregate that throws a business failure on a command, which cannot be

0 commit comments

Comments
 (0)