瀏覽代碼

Moved tracking id generator to domain service package.

Moved EventSequenceNumber to handling aggregate.
peter_backlund 17 年之前
父節點
當前提交
a68345516b
共有 12 個檔案被更改,包括 10 行新增69 行删除
  1. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/application/event/CargoUpdater.java
  2. 1
    0
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/CargoFactory.java
  3. 0
    10
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/TrackingIdGenerator.java
  4. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/handling/HandlingEvent.java
  5. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/handling/HandlingEventRepository.java
  6. 0
    51
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/shared/EventSequenceNumber.java
  7. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/hibernate/DatabaseTrackingIdGenerator.java
  8. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/hibernate/HandlingEventRepositoryHibernate.java
  9. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/inmemory/HandlingEventRepositoryInMem.java
  10. 1
    1
      dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/inmemory/TrackingIdGeneratorInMem.java
  11. 1
    0
      dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/application/booking/BookingServiceTest.java
  12. 1
    1
      dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/infrastructure/TrackingIdGeneratorTest.java

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/application/event/CargoUpdater.java 查看文件

7
 import se.citerus.dddsample.tracking.core.domain.model.cargo.CargoRepository;
7
 import se.citerus.dddsample.tracking.core.domain.model.cargo.CargoRepository;
8
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
8
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
9
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
9
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
10
-import se.citerus.dddsample.tracking.core.domain.model.shared.EventSequenceNumber;
10
+import se.citerus.dddsample.tracking.core.domain.model.handling.EventSequenceNumber;
11
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
11
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
12
 
12
 
13
 public class CargoUpdater {
13
 public class CargoUpdater {

+ 1
- 0
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/CargoFactory.java 查看文件

9
 import se.citerus.dddsample.tracking.core.domain.model.location.Location;
9
 import se.citerus.dddsample.tracking.core.domain.model.location.Location;
10
 import se.citerus.dddsample.tracking.core.domain.model.location.LocationRepository;
10
 import se.citerus.dddsample.tracking.core.domain.model.location.LocationRepository;
11
 import se.citerus.dddsample.tracking.core.domain.model.location.UnLocode;
11
 import se.citerus.dddsample.tracking.core.domain.model.location.UnLocode;
12
+import se.citerus.dddsample.tracking.core.domain.service.TrackingIdGenerator;
12
 
13
 
13
 import java.util.Date;
14
 import java.util.Date;
14
 
15
 

+ 0
- 10
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/cargo/TrackingIdGenerator.java 查看文件

1
-package se.citerus.dddsample.tracking.core.domain.model.cargo;
2
-
3
-/**
4
- * Generates tracking ids for cargos. This is a domain service.
5
- */
6
-public interface TrackingIdGenerator {
7
-
8
-  TrackingId nextTrackingId();
9
-
10
-}

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/handling/HandlingEvent.java 查看文件

5
 import org.apache.commons.lang.builder.HashCodeBuilder;
5
 import org.apache.commons.lang.builder.HashCodeBuilder;
6
 import se.citerus.dddsample.tracking.core.domain.model.cargo.Cargo;
6
 import se.citerus.dddsample.tracking.core.domain.model.cargo.Cargo;
7
 import se.citerus.dddsample.tracking.core.domain.model.location.Location;
7
 import se.citerus.dddsample.tracking.core.domain.model.location.Location;
8
-import se.citerus.dddsample.tracking.core.domain.model.shared.EventSequenceNumber;
8
+import se.citerus.dddsample.tracking.core.domain.model.handling.EventSequenceNumber;
9
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
9
 import se.citerus.dddsample.tracking.core.domain.model.shared.HandlingActivity;
10
 import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
10
 import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
11
 import se.citerus.dddsample.tracking.core.domain.shared.DomainEvent;
11
 import se.citerus.dddsample.tracking.core.domain.shared.DomainEvent;

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/handling/HandlingEventRepository.java 查看文件

1
 package se.citerus.dddsample.tracking.core.domain.model.handling;
1
 package se.citerus.dddsample.tracking.core.domain.model.handling;
2
 
2
 
3
 import se.citerus.dddsample.tracking.core.domain.model.cargo.Cargo;
3
 import se.citerus.dddsample.tracking.core.domain.model.cargo.Cargo;
4
-import se.citerus.dddsample.tracking.core.domain.model.shared.EventSequenceNumber;
4
+import se.citerus.dddsample.tracking.core.domain.model.handling.EventSequenceNumber;
5
 
5
 
6
 /**
6
 /**
7
  * Handling event repository.
7
  * Handling event repository.

+ 0
- 51
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/shared/EventSequenceNumber.java 查看文件

1
-package se.citerus.dddsample.tracking.core.domain.model.shared;
2
-
3
-import se.citerus.dddsample.tracking.core.domain.shared.ValueObject;
4
-
5
-import java.util.concurrent.atomic.AtomicLong;
6
-
7
-public class EventSequenceNumber implements ValueObject<EventSequenceNumber> {
8
-
9
-  private long value;
10
-  private static final AtomicLong SEQUENCE = new AtomicLong(System.currentTimeMillis());
11
-
12
-  private EventSequenceNumber(final long value) {
13
-    this.value = value;
14
-  }
15
-
16
-  public static EventSequenceNumber next() {
17
-    return new EventSequenceNumber(SEQUENCE.getAndIncrement());
18
-  }
19
-
20
-  public long longValue() {
21
-    return value;
22
-  }
23
-
24
-  @Override
25
-  public boolean sameValueAs(final EventSequenceNumber other) {
26
-    return false;
27
-  }
28
-
29
-  @Override
30
-  public boolean equals(Object o) {
31
-    if (this == o) return true;
32
-    if (o == null || getClass() != o.getClass()) return false;
33
-
34
-    return sameValueAs((EventSequenceNumber) o);
35
-  }
36
-
37
-  @Override
38
-  public int hashCode() {
39
-    return Long.valueOf(value).hashCode();
40
-  }
41
-
42
-  @Override
43
-  public String toString() {
44
-    return String.valueOf(value);
45
-  }
46
-
47
-  EventSequenceNumber() {
48
-    // Needed by Hibernate
49
-  }
50
-
51
-}

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/hibernate/DatabaseTrackingIdGenerator.java 查看文件

8
 
8
 
9
 import org.hibernate.SessionFactory;
9
 import org.hibernate.SessionFactory;
10
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
10
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
11
-import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingIdGenerator;
11
+import se.citerus.dddsample.tracking.core.domain.service.TrackingIdGenerator;
12
 
12
 
13
 public class DatabaseTrackingIdGenerator implements TrackingIdGenerator {
13
 public class DatabaseTrackingIdGenerator implements TrackingIdGenerator {
14
 
14
 

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/hibernate/HandlingEventRepositoryHibernate.java 查看文件

5
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
5
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
6
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
6
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
7
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingHistory;
7
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingHistory;
8
-import se.citerus.dddsample.tracking.core.domain.model.shared.EventSequenceNumber;
8
+import se.citerus.dddsample.tracking.core.domain.model.handling.EventSequenceNumber;
9
 
9
 
10
 import java.util.List;
10
 import java.util.List;
11
 
11
 

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/inmemory/HandlingEventRepositoryInMem.java 查看文件

5
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
5
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEvent;
6
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
6
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingEventRepository;
7
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingHistory;
7
 import se.citerus.dddsample.tracking.core.domain.model.handling.HandlingHistory;
8
-import se.citerus.dddsample.tracking.core.domain.model.shared.EventSequenceNumber;
8
+import se.citerus.dddsample.tracking.core.domain.model.handling.EventSequenceNumber;
9
 
9
 
10
 import java.util.*;
10
 import java.util.*;
11
 
11
 

+ 1
- 1
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/infrastructure/persistence/inmemory/TrackingIdGeneratorInMem.java 查看文件

7
 package se.citerus.dddsample.tracking.core.infrastructure.persistence.inmemory;
7
 package se.citerus.dddsample.tracking.core.infrastructure.persistence.inmemory;
8
 
8
 
9
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
9
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
10
-import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingIdGenerator;
10
+import se.citerus.dddsample.tracking.core.domain.service.TrackingIdGenerator;
11
 
11
 
12
 import java.util.concurrent.atomic.AtomicLong;
12
 import java.util.concurrent.atomic.AtomicLong;
13
 
13
 

+ 1
- 0
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/application/booking/BookingServiceTest.java 查看文件

8
 import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.STOCKHOLM;
8
 import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.STOCKHOLM;
9
 import se.citerus.dddsample.tracking.core.domain.model.location.UnLocode;
9
 import se.citerus.dddsample.tracking.core.domain.model.location.UnLocode;
10
 import se.citerus.dddsample.tracking.core.domain.service.RoutingService;
10
 import se.citerus.dddsample.tracking.core.domain.service.RoutingService;
11
+import se.citerus.dddsample.tracking.core.domain.service.TrackingIdGenerator;
11
 
12
 
12
 import java.util.Date;
13
 import java.util.Date;
13
 
14
 

+ 1
- 1
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/infrastructure/TrackingIdGeneratorTest.java 查看文件

3
 import junit.framework.Assert;
3
 import junit.framework.Assert;
4
 import junit.framework.TestCase;
4
 import junit.framework.TestCase;
5
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
5
 import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingId;
6
-import se.citerus.dddsample.tracking.core.domain.model.cargo.TrackingIdGenerator;
6
+import se.citerus.dddsample.tracking.core.domain.service.TrackingIdGenerator;
7
 import se.citerus.dddsample.tracking.core.infrastructure.persistence.inmemory.TrackingIdGeneratorInMem;
7
 import se.citerus.dddsample.tracking.core.infrastructure.persistence.inmemory.TrackingIdGeneratorInMem;
8
 
8
 
9
 public class TrackingIdGeneratorTest extends TestCase {
9
 public class TrackingIdGeneratorTest extends TestCase {