README.md 2.74 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


npedot's avatar
npedot committed
71
## v0.1.0
npedot's avatar
npedot committed
72

73
74
75
from object database meta representation as input
apply kotlin transformer vertical or horizontal
obtain a second database meta representation as output
npedot's avatar
npedot committed
76

77

npedot's avatar
npedot committed
78
## v0.2.0
79
80
81
82
83
84

from xml object database meta representation as input
apply kotlin transformer vertical or horizontal
obtain a changeset representation as output


npedot's avatar
npedot committed
85
## v0.3.0
86
87
88
89
90

from xml object database meta representation as input
a generic xpath engine extraction plus freemarker template to generate
obtain a database meta representation as output

npedot's avatar
npedot committed
91
92
93
94
95
## v0.4.0

from xml object database meta representation as input
a xml transfomer descriptor

96
97
98
99
100
101
### to fix

* xml with constraint and empty columns (as primary keys).
* use case API transform/scenario , must output database, input database to let iterate.
* PROBLEM: xpath uses doc database file as source, must use string not file OR write database to file as output.

102
103
104
105
106
107
### to do

* horizontal simple decomposition to remove null columns
* merge selected input database out template process
* (probably) xpath with use of result of previous xpath computation as parameter
* (probably) sql xml representation to add database representation
108
* (probably) sql xml for relational algebra representation for selection
109
110

### references
npedot's avatar
npedot committed
111
112
113
114
115

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