README.md 1.67 KB
Newer Older
Pedot Nicola's avatar
Pedot Nicola committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# README


## required

    mvn 3
    jdk 8


## compile

    mvn compile


## test

17
18
    mvn test
    
npedot's avatar
npedot committed
19
20
21
22
23
24
25
26
27
28

## test integration (manual invocation)

for person vplit scenario:
 
    mvn -Dtest=PersonVSplitScenarioTI test

for sakila scenario (it requires postgres db access and configuration):

    mvn -Dtest=SakilaScenarioTI test
29
30
31
32
33
    
## edit

Mostly required IntelliJ IDEA for Kotlin.

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    idea . &


## source

### package / naming conventions

main package

    unibz.      univerity name
    cs.         computer science faculty name
    semint.     project name
    kprime      subproject name

main class entry point

    Starter     where all it starts and components get put toghether

technology free packages

54
55
    domain/     where aggregates, entities, values lives.
    usecase/    where domain components play toghether using services, repositories interfaces.
56
57
58

technology depenent packages

59
60
61
    adapter/    where services, repositories implementations lives.
    support/    where domain indipendent sherable implementation components lives.
    scenario/   where usecases are applied to real technology dependent case.    
62

npedot's avatar
npedot committed
63
### classes conventions
64

npedot's avatar
npedot committed
65
* A UseCase will return always a UseCaseResult.
66
67
68
* A UseCase may use only domain, service, repository components.
* An Adapter ha always to implement a service or repository interface.
* A domain component has to depends on nothing. 
npedot's avatar
npedot committed
69
70
71
72
73
74
75


## to do

* schema clone, builder, immutable
* schema pattern matcher
* schema variable extrator
npedot's avatar
npedot committed
76
77
78
79
80
81
82
83
* sql view generator

## references

https://www.baeldung.com/java-xpath
https://freemarker.apache.org/
https://github.com/ostap/relations-java
https://github.com/JSQLParser/JSqlParser/wiki/Examples-of-SQL-parsing