Skip to content

Commit 759d785

Browse files
committed
using new communication between layers - getting rid of exception driven notifications
1 parent 8f7be3f commit 759d785

File tree

15 files changed

+220
-400
lines changed

15 files changed

+220
-400
lines changed

sampling-message-client/src/main/java/de/dhbw/ravensburg/verteiltesysteme/client/CommandLineClient.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class CommandLineClient {
5959
.build());
6060
}
6161

62-
public void run(String[] args) throws Exception {
62+
public void run(String[] args) {
6363
CommandLineParser commandLineParser = new DefaultParser();
6464
helpFormatter = new HelpFormatter();
6565
CommandLine commandLine;
@@ -198,7 +198,8 @@ private void deleteSamplingMessage(CommandLine commandLine, SamplingMessageGrpc.
198198

199199

200200
private void exitWithError(String errorMessage) {
201-
System.out.println(errorMessage);
201+
log.debug("ParsingError: ", errorMessage);
202+
log.error(errorMessage);
202203
helpFormatter.printHelp("sampling-message-client", options);
203204
System.exit(1);
204205
}
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package de.dhbw.ravensburg.verteiltesysteme.server.persistence;
22

3-
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.exception.DatabaseSamplingMessageAlreadyExistsException;
4-
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.exception.DatabaseSamplingMessageNotFoundException;
53
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.model.DatabaseSamplingMessage;
64
import lombok.NonNull;
75

86
import java.time.Instant;
7+
import java.util.Optional;
98

109
public interface DatabaseAccessObject {
11-
DatabaseSamplingMessage getSamplingMessage(@NonNull String messageName) throws DatabaseSamplingMessageNotFoundException;
10+
Optional<DatabaseSamplingMessage> getSamplingMessage(@NonNull String messageName);
1211

13-
void createSamplingMessage(@NonNull String messageName, @NonNull DatabaseSamplingMessage databaseSamplingMessage) throws DatabaseSamplingMessageAlreadyExistsException;
12+
boolean createSamplingMessage(@NonNull String messageName, @NonNull DatabaseSamplingMessage databaseSamplingMessage);
1413

15-
void writeSamplingMessageContentAndTimestamp(@NonNull final String messageName, @NonNull final String messageContent, @NonNull final Instant updateTimestamp) throws DatabaseSamplingMessageNotFoundException;
14+
boolean writeSamplingMessageContentAndTimestamp(@NonNull final String messageName, @NonNull final String messageContent, @NonNull final Instant updateTimestamp);
1615

17-
void deleteSamplingMessage(@NonNull String messageName) throws DatabaseSamplingMessageNotFoundException;
16+
boolean deleteSamplingMessage(@NonNull String messageName);
1817

1918
long getTotalMessageCount();
2019
}

sampling-message-server/src/main/java/de/dhbw/ravensburg/verteiltesysteme/server/persistence/DatabaseAccessObjectImpl.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,54 @@
11
package de.dhbw.ravensburg.verteiltesysteme.server.persistence;
22

3-
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.exception.DatabaseSamplingMessageAlreadyExistsException;
4-
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.exception.DatabaseSamplingMessageNotFoundException;
53
import de.dhbw.ravensburg.verteiltesysteme.server.persistence.model.DatabaseSamplingMessage;
64
import lombok.NonNull;
75
import lombok.extern.slf4j.Slf4j;
86

97
import java.time.Instant;
8+
import java.util.Optional;
109

1110
@Slf4j
1211
public class DatabaseAccessObjectImpl implements DatabaseAccessObject {
1312
private final FakePersistence<String, DatabaseSamplingMessage> fakePersistence;
1413

1514
public DatabaseAccessObjectImpl(final @NonNull FakePersistence<String, DatabaseSamplingMessage> fakePersistence) {
15+
log.debug("Constructing DatabaseAccessObjectImpl");
1616
this.fakePersistence = fakePersistence;
1717
}
1818

1919
@Override
20-
public DatabaseSamplingMessage getSamplingMessage(@NonNull final String messageName) throws DatabaseSamplingMessageNotFoundException {
20+
public Optional<DatabaseSamplingMessage> getSamplingMessage(@NonNull final String messageName) {
2121
final DatabaseSamplingMessage databaseSamplingMessage = fakePersistence.get(messageName);
2222
if (databaseSamplingMessage == null) {
23-
throw new DatabaseSamplingMessageNotFoundException(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
23+
log.info(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
2424
}
25-
return databaseSamplingMessage;
25+
return Optional.of(databaseSamplingMessage);
2626
}
2727

2828
@Override
29-
public void createSamplingMessage(@NonNull final String messageName, @NonNull final DatabaseSamplingMessage databaseSamplingMessage) throws DatabaseSamplingMessageAlreadyExistsException {
30-
if (fakePersistence.putIfAbsent(messageName, databaseSamplingMessage) != null) {
31-
throw new DatabaseSamplingMessageAlreadyExistsException(String.format("DatabaseSamplingMessage with the messageName: %s already exists.", messageName));
29+
public boolean createSamplingMessage(@NonNull final String messageName, @NonNull final DatabaseSamplingMessage databaseSamplingMessage) {
30+
if (fakePersistence.putIfAbsent(messageName, databaseSamplingMessage) == null) {
31+
return true;
3232
}
33+
log.info(String.format("DatabaseSamplingMessage with the messageName: %s already exists.", messageName));
34+
return false;
3335
}
3436

35-
public void writeSamplingMessageContentAndTimestamp(@NonNull final String messageName, @NonNull final String messageContent, @NonNull final Instant updateTimestamp) throws DatabaseSamplingMessageNotFoundException {
36-
if (fakePersistence.computeIfPresent(messageName, (key, value) -> value.setMessageContent(messageContent).setMessageUpdateTimestamp(updateTimestamp)) == null) {
37-
throw new DatabaseSamplingMessageNotFoundException(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
37+
public boolean writeSamplingMessageContentAndTimestamp(@NonNull final String messageName, @NonNull final String messageContent, @NonNull final Instant updateTimestamp) {
38+
if (fakePersistence.computeIfPresent(messageName, (key, value) -> value.setMessageContent(messageContent).setMessageUpdateTimestamp(updateTimestamp)) != null) {
39+
return true;
3840
}
39-
log.info(fakePersistence.get(messageName).toString());
41+
log.info(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
42+
return false;
4043
}
4144

4245
@Override
43-
public void deleteSamplingMessage(@NonNull final String messageName) throws DatabaseSamplingMessageNotFoundException {
44-
if (fakePersistence.remove(messageName) == null) {
45-
throw new DatabaseSamplingMessageNotFoundException(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
46+
public boolean deleteSamplingMessage(@NonNull final String messageName) {
47+
if (fakePersistence.remove(messageName) != null) {
48+
return true;
4649
}
50+
log.info(String.format("DatabaseSamplingMessage with the messageName: %s not found.", messageName));
51+
return false;
4752
}
4853

4954
@Override

sampling-message-server/src/main/java/de/dhbw/ravensburg/verteiltesysteme/server/persistence/exception/DatabaseSamplingMessageAlreadyExistsException.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

sampling-message-server/src/main/java/de/dhbw/ravensburg/verteiltesysteme/server/persistence/exception/DatabaseSamplingMessageNotFoundException.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

sampling-message-server/src/main/java/de/dhbw/ravensburg/verteiltesysteme/server/persistence/exception/PersistenceException.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)