eva4j 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +441 -14
- package/DOMAIN_YAML_GUIDE.md +425 -21
- package/FUTURE_FEATURES.md +315 -115
- package/QUICK_REFERENCE.md +101 -153
- package/README.md +77 -70
- package/bin/eva4j.js +57 -1
- package/config/defaults.json +3 -0
- package/docs/commands/GENERATE_ENTITIES.md +662 -1968
- package/docs/commands/GENERATE_HTTP_EXCHANGE.md +274 -450
- package/docs/commands/GENERATE_KAFKA_EVENT.md +219 -498
- package/docs/commands/GENERATE_KAFKA_LISTENER.md +18 -18
- package/docs/commands/GENERATE_RECORD.md +335 -311
- package/docs/commands/GENERATE_TEMPORAL_ACTIVITY.md +174 -0
- package/docs/commands/GENERATE_TEMPORAL_FLOW.md +237 -0
- package/docs/commands/GENERATE_USECASE.md +216 -282
- package/docs/commands/INDEX.md +36 -7
- package/examples/doctor-evaluation.yaml +3 -3
- package/examples/domain-audit-complete.yaml +2 -2
- package/examples/domain-collections.yaml +2 -2
- package/examples/domain-ecommerce.yaml +2 -2
- package/examples/domain-events.yaml +201 -0
- package/examples/domain-field-visibility.yaml +11 -5
- package/examples/domain-multi-aggregate.yaml +12 -6
- package/examples/domain-one-to-many.yaml +1 -1
- package/examples/domain-one-to-one.yaml +1 -1
- package/examples/domain-secondary-onetomany.yaml +1 -1
- package/examples/domain-secondary-onetoone.yaml +1 -1
- package/examples/domain-simple.yaml +1 -1
- package/examples/domain-soft-delete.yaml +3 -3
- package/examples/domain-transitions.yaml +1 -1
- package/examples/domain-value-objects.yaml +1 -1
- package/package.json +2 -2
- package/src/commands/add-kafka-client.js +3 -1
- package/src/commands/add-temporal-client.js +286 -0
- package/src/commands/generate-entities.js +75 -4
- package/src/commands/generate-kafka-event.js +273 -89
- package/src/commands/generate-temporal-activity.js +228 -0
- package/src/commands/generate-temporal-flow.js +216 -0
- package/src/generators/module-generator.js +1 -0
- package/src/generators/shared-generator.js +26 -0
- package/src/utils/yaml-to-entity.js +93 -4
- package/templates/aggregate/AggregateRepository.java.ejs +3 -2
- package/templates/aggregate/AggregateRepositoryImpl.java.ejs +15 -7
- package/templates/aggregate/AggregateRoot.java.ejs +38 -2
- package/templates/aggregate/DomainEntity.java.ejs +6 -2
- package/templates/aggregate/DomainEventHandler.java.ejs +62 -0
- package/templates/aggregate/DomainEventRecord.java.ejs +50 -0
- package/templates/aggregate/JpaAggregateRoot.java.ejs +3 -1
- package/templates/aggregate/JpaEntity.java.ejs +3 -1
- package/templates/base/docker/kafka-services.yaml.ejs +2 -2
- package/templates/base/docker/temporal-services.yaml.ejs +29 -0
- package/templates/base/resources/parameters/develop/temporal.yaml.ejs +9 -0
- package/templates/base/resources/parameters/local/temporal.yaml.ejs +9 -0
- package/templates/base/resources/parameters/production/temporal.yaml.ejs +9 -0
- package/templates/base/resources/parameters/test/temporal.yaml.ejs +9 -0
- package/templates/base/root/AGENTS.md.ejs +916 -51
- package/templates/crud/Controller.java.ejs +36 -6
- package/templates/crud/ListQuery.java.ejs +6 -2
- package/templates/crud/ListQueryHandler.java.ejs +24 -10
- package/templates/crud/UpdateCommand.java.ejs +52 -0
- package/templates/crud/UpdateCommandHandler.java.ejs +105 -0
- package/templates/kafka-event/DomainEventHandlerMethod.ejs +1 -0
- package/templates/kafka-event/Event.java.ejs +23 -0
- package/templates/shared/application/dtos/PagedResponse.java.ejs +30 -0
- package/templates/shared/configurations/temporalConfig/TemporalConfig.java.ejs +104 -0
- package/templates/shared/domain/DomainEvent.java.ejs +40 -0
- package/templates/shared/interfaces/HeavyActivity.java.ejs +4 -0
- package/templates/shared/interfaces/LightActivity.java.ejs +4 -0
- package/templates/temporal-activity/ActivityImpl.java.ejs +14 -0
- package/templates/temporal-activity/ActivityInterface.java.ejs +11 -0
- package/templates/temporal-flow/WorkFlowImpl.java.ejs +64 -0
- package/templates/temporal-flow/WorkFlowInterface.java.ejs +19 -0
- package/templates/temporal-flow/WorkFlowService.java.ejs +49 -0
|
@@ -25,7 +25,7 @@ The command generates Spring Kafka `@KafkaListener` components that automaticall
|
|
|
25
25
|
## Syntax
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
|
|
28
|
+
eva generate kafka-listener <module>
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
### Parameters
|
|
@@ -50,7 +50,7 @@ After running the command, you'll be prompted to:
|
|
|
50
50
|
### 1. Kafka Client Must Be Installed
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
|
|
53
|
+
eva add kafka-client
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
This configures:
|
|
@@ -72,7 +72,7 @@ topics:
|
|
|
72
72
|
|
|
73
73
|
**Tip:** Generate topics using:
|
|
74
74
|
```bash
|
|
75
|
-
|
|
75
|
+
eva generate kafka-event <module> <event-name>
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
---
|
|
@@ -83,7 +83,7 @@ eva4j generate kafka-event <module> <event-name>
|
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
85
|
# Create listeners in 'user' module
|
|
86
|
-
|
|
86
|
+
eva generate kafka-listener user
|
|
87
87
|
|
|
88
88
|
# Select topics from interactive menu:
|
|
89
89
|
# ✓ user-created (user.events.created)
|
|
@@ -146,7 +146,7 @@ public class UserUserCreatedListener {
|
|
|
146
146
|
|
|
147
147
|
```bash
|
|
148
148
|
# Run command again to add more listeners
|
|
149
|
-
|
|
149
|
+
eva generate kafka-listener order
|
|
150
150
|
|
|
151
151
|
# Select additional topics:
|
|
152
152
|
# ✓ order-shipped (order.events.shipped)
|
|
@@ -171,12 +171,12 @@ order/infrastructure/kafkaListener/
|
|
|
171
171
|
|
|
172
172
|
```bash
|
|
173
173
|
# In user module
|
|
174
|
-
|
|
174
|
+
eva generate kafka-listener user
|
|
175
175
|
# Select: user-created
|
|
176
176
|
# Generates: UserUserCreatedListener.java
|
|
177
177
|
|
|
178
178
|
# In notification module
|
|
179
|
-
|
|
179
|
+
eva generate kafka-listener notification
|
|
180
180
|
# Select: user-created
|
|
181
181
|
# Generates: NotificationUserCreatedListener.java
|
|
182
182
|
```
|
|
@@ -239,11 +239,11 @@ public class UserCreatedListener {
|
|
|
239
239
|
|
|
240
240
|
```bash
|
|
241
241
|
# Notification module listens to user-created
|
|
242
|
-
|
|
242
|
+
eva generate kafka-listener notification
|
|
243
243
|
# Select: user-created
|
|
244
244
|
|
|
245
245
|
# Analytics module also listens to user-created
|
|
246
|
-
|
|
246
|
+
eva generate kafka-listener analytics
|
|
247
247
|
# Select: user-created
|
|
248
248
|
```
|
|
249
249
|
|
|
@@ -330,7 +330,7 @@ topics:
|
|
|
330
330
|
```
|
|
331
331
|
User runs command
|
|
332
332
|
↓
|
|
333
|
-
Validates
|
|
333
|
+
Validates eva project
|
|
334
334
|
↓
|
|
335
335
|
Checks Kafka client installed
|
|
336
336
|
↓
|
|
@@ -488,7 +488,7 @@ void handleUserCreatedListener(EventEnvelope<Map<String, Object>> event, Acknowl
|
|
|
488
488
|
### 1. **Notification Service**
|
|
489
489
|
|
|
490
490
|
```bash
|
|
491
|
-
|
|
491
|
+
eva generate kafka-listener notification
|
|
492
492
|
|
|
493
493
|
# Listen to events from other services:
|
|
494
494
|
# ✓ user-created (send welcome email)
|
|
@@ -499,7 +499,7 @@ eva4j generate kafka-listener notification
|
|
|
499
499
|
### 2. **Analytics/Audit Service**
|
|
500
500
|
|
|
501
501
|
```bash
|
|
502
|
-
|
|
502
|
+
eva generate kafka-listener analytics
|
|
503
503
|
|
|
504
504
|
# Listen to all domain events:
|
|
505
505
|
# ✓ user-created
|
|
@@ -512,7 +512,7 @@ eva4j generate kafka-listener analytics
|
|
|
512
512
|
### 3. **Saga Orchestration**
|
|
513
513
|
|
|
514
514
|
```bash
|
|
515
|
-
|
|
515
|
+
eva generate kafka-listener order
|
|
516
516
|
|
|
517
517
|
# Listen to events from other services:
|
|
518
518
|
# ✓ payment-processed (complete order)
|
|
@@ -523,7 +523,7 @@ eva4j generate kafka-listener order
|
|
|
523
523
|
### 4. **Data Synchronization**
|
|
524
524
|
|
|
525
525
|
```bash
|
|
526
|
-
|
|
526
|
+
eva generate kafka-listener search
|
|
527
527
|
|
|
528
528
|
# Keep search index updated:
|
|
529
529
|
# ✓ product-created (index product)
|
|
@@ -576,14 +576,14 @@ public ConcurrentKafkaListenerContainerFactory<String, Object> kafkaListenerCont
|
|
|
576
576
|
|
|
577
577
|
**Solution:**
|
|
578
578
|
```bash
|
|
579
|
-
|
|
579
|
+
eva add kafka-client
|
|
580
580
|
```
|
|
581
581
|
|
|
582
582
|
### ❌ "No topics found in kafka.yaml"
|
|
583
583
|
|
|
584
584
|
**Solution:** Generate topics first:
|
|
585
585
|
```bash
|
|
586
|
-
|
|
586
|
+
eva generate kafka-event user user-created
|
|
587
587
|
```
|
|
588
588
|
|
|
589
589
|
Or manually add to `kafka.yaml`:
|
|
@@ -596,12 +596,12 @@ topics:
|
|
|
596
596
|
|
|
597
597
|
**Solution:** Verify module exists:
|
|
598
598
|
```bash
|
|
599
|
-
|
|
599
|
+
eva info
|
|
600
600
|
```
|
|
601
601
|
|
|
602
602
|
If missing, create module:
|
|
603
603
|
```bash
|
|
604
|
-
|
|
604
|
+
eva add module <module-name>
|
|
605
605
|
```
|
|
606
606
|
|
|
607
607
|
### ❌ Events not being consumed
|