diff --git a/pom.xml b/pom.xml index 3c656f7968402b60eae35187cb7bffab852e1a00..8c175ce9d957e871ec2a92a7d6e0377ecf7b3be4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,137 +1,177 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" - xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <modelVersion>4.0.0</modelVersion> +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> - <parent> - <artifactId>java-updated-versions</artifactId> - <groupId>fr.soleil.maven.parent</groupId> - <version>0-SNAPSHOT</version> - </parent> + <parent> + <artifactId>java-updated-versions</artifactId> + <groupId>fr.soleil.maven.parent</groupId> + <version>0-SNAPSHOT</version> + </parent> - <groupId>fr.soleil.lib</groupId> - <artifactId>snapArchivingApi</artifactId> - <version>1.8.6</version> - <name>snapArchivingApi</name> - <description>Snap Archiving API</description> - <developers> - <developer> - <id>abeille</id> - <name>Gwenaelle Abeille</name> - <email>gwenaelle.abeille@synchrotron-soleil.fr</email> - <organization>Synchrotron Soleil</organization> - <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> - <roles> - <role>Java Developer</role> - </roles> - <timezone>1</timezone> - </developer> - <developer> - <id>girardot</id> - <name>Raphaël GIRARDOT</name> - <email>raphael.girardot@synchrotron-soleil.fr</email> - <organization>Synchrotron Soleil</organization> - <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> - <roles> - <role>Java Developer</role> - </roles> - <timezone>1</timezone> - </developer> - </developers> + <groupId>fr.soleil.lib</groupId> + <artifactId>snapArchivingApi</artifactId> + <version>1.8.6</version> + <name>snapArchivingApi</name> + <description>Snap Archiving API</description> + <developers> + <developer> + <id>abeille</id> + <name>Gwenaelle Abeille</name> + <email>gwenaelle.abeille@synchrotron-soleil.fr</email> + <organization>Synchrotron Soleil</organization> + <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> + <roles> + <role>Java Developer</role> + </roles> + <timezone>1</timezone> + </developer> + <developer> + <id>girardot</id> + <name>Raphaël GIRARDOT</name> + <email>raphael.girardot@synchrotron-soleil.fr</email> + <organization>Synchrotron Soleil</organization> + <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> + <roles> + <role>Java Developer</role> + </roles> + <timezone>1</timezone> + </developer> + </developers> - <scm> - <connection>${scm.connection.svn.tango-cs}:archiving/api/snapArchivingApi/trunk</connection> - <developerConnection>${scm.developerConnection.svn.tango-cs}:archiving/api/snapArchivingApi/trunk</developerConnection> - <url>${scm.url.svn.tango-cs}/archiving/api/snapArchivingApi/trunk</url> - </scm> + <scm> + <connection>${scm.connection.svn.tango-cs}:archiving/api/snapArchivingApi/trunk</connection> + <developerConnection>${scm.developerConnection.svn.tango-cs}:archiving/api/snapArchivingApi/trunk</developerConnection> + <url>${scm.url.svn.tango-cs}/archiving/api/snapArchivingApi/trunk</url> + </scm> - <dependencies> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api </artifactId> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>log4j-over-slf4j</artifactId> - <version>1.7.6</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>jcl-over-slf4j</artifactId> - <version>1.7.6</version> - </dependency> - <dependency> - <groupId>org.tango-controls</groupId> - <artifactId>JTangoCommons</artifactId> - </dependency> - <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> - </dependency> - <dependency> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> - </dependency> - <dependency> - <groupId>fr.soleil.lib</groupId> - <artifactId>commonArchivingApi</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-entitymanager</artifactId> - <version>5.4.2.Final</version> - </dependency> - <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-c3p0</artifactId> - <version>5.4.2.Final</version> - </dependency> - <dependency> - <groupId>aspectj</groupId> - <artifactId>aspectjweaver</artifactId> - </dependency> - <dependency> - <groupId>javassist</groupId> - <artifactId>javassist</artifactId> - </dependency> - <dependency> - <groupId>com.googlecode.log4jdbc</groupId> - <artifactId>log4jdbc</artifactId> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - </dependencies> + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api </artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>log4j-over-slf4j</artifactId> + <version>1.7.6</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>1.7.6</version> + </dependency> + <dependency> + <groupId>org.tango-controls</groupId> + <artifactId>JTangoCommons</artifactId> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + </dependency> + <dependency> + <groupId>commons-pool</groupId> + <artifactId>commons-pool</artifactId> + </dependency> + <dependency> + <groupId>fr.soleil.lib</groupId> + <artifactId>commonArchivingApi</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>5.4.2.Final</version> + </dependency> + <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-c3p0</artifactId> + <version>5.4.2.Final</version> + </dependency> + <dependency> + <groupId>aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + </dependency> + <dependency> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + </dependency> + <dependency> + <groupId>com.googlecode.log4jdbc</groupId> + <artifactId>log4jdbc</artifactId> + </dependency> + <!-- Test --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-core</artifactId> + <version>3.4.2</version> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.4.200</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>oracle-xe</artifactId> + <version>1.15.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-maven-plugin</artifactId> + <version>3.5.3</version> + <configuration> + <changeLogFile>src/main/resources/liquibase/master.xml</changeLogFile> + <diffChangeLogFile>src/main/resources/liquibase/changelog/20190411-103909_changelog.xml</diffChangeLogFile> + <driver>org.h2.Driver</driver> + <url>jdbc:h2:mem:SNAP;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS SNAP\;SET SCHEMA SNAP;</url> + <defaultSchemaName>SNAP</defaultSchemaName> + <contexts>test</contexts> + <username>snap</username> + <password>snap</password> + <outputChangeLogFile>myGenChangeLog.xml</outputChangeLogFile> + <logging>debug</logging> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> </project> diff --git a/src/main/java/fr/soleil/archiving/snap/api/model/Ast.java b/src/main/java/fr/soleil/archiving/snap/api/model/Ast.java new file mode 100644 index 0000000000000000000000000000000000000000..31a10900a2d2eb580e72363d400f4b4169317da8 --- /dev/null +++ b/src/main/java/fr/soleil/archiving/snap/api/model/Ast.java @@ -0,0 +1,236 @@ +package fr.soleil.archiving.snap.api.model; +// Generated 8 janv. 2021 � 16:24:38 by Hibernate Tools 4.3.5.Final + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * Ast generated by hbm2java + */ +@Entity +@Table(name = "AST") +public class Ast implements java.io.Serializable { + + private int id; + private Date time; + private String fullName; + private String device; + private String domain; + private String family; + private String member; + private String attName; + private BigDecimal dataType; + private BigDecimal dataFormat; + private BigDecimal writable; + private BigDecimal maxDimX; + private BigDecimal maxDimY; + private BigDecimal levelg; + private String facility; + private BigDecimal archivable; + private BigDecimal substitute; + + + public Ast() { + } + + public Ast(int id, String fullName, String device, String domain, String family, String member, String attName, + BigDecimal dataType, BigDecimal dataFormat, BigDecimal writable, String facility) { + this.id = id; + this.fullName = fullName; + this.device = device; + this.domain = domain; + this.family = family; + this.member = member; + this.attName = attName; + this.dataType = dataType; + this.dataFormat = dataFormat; + this.writable = writable; + this.facility = facility; + } + + public Ast(int id, Date time, String fullName, String device, String domain, String family, String member, + String attName, BigDecimal dataType, BigDecimal dataFormat, BigDecimal writable, BigDecimal maxDimX, + BigDecimal maxDimY, BigDecimal levelg, String facility, BigDecimal archivable, BigDecimal substitute) { + this.id = id; + this.time = time; + this.fullName = fullName; + this.device = device; + this.domain = domain; + this.family = family; + this.member = member; + this.attName = attName; + this.dataType = dataType; + this.dataFormat = dataFormat; + this.writable = writable; + this.maxDimX = maxDimX; + this.maxDimY = maxDimY; + this.levelg = levelg; + this.facility = facility; + this.archivable = archivable; + this.substitute = substitute; + } + + @Id + + @Column(name = "ID", nullable = false, precision = 5, scale = 0) + public int getId() { + return this.id; + } + + public void setId(int id) { + this.id = id; + } + + @Temporal(TemporalType.DATE) + @Column(name = "TIME", length = 7) + public Date getTime() { + return this.time; + } + + public void setTime(Date time) { + this.time = time; + } + + @Column(name = "FULL_NAME", nullable = false, length = 500) + public String getFullName() { + return this.fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + @Column(name = "DEVICE", nullable = false, length = 500) + public String getDevice() { + return this.device; + } + + public void setDevice(String device) { + this.device = device; + } + + @Column(name = "DOMAIN", nullable = false, length = 500) + public String getDomain() { + return this.domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + @Column(name = "FAMILY", nullable = false, length = 500) + public String getFamily() { + return this.family; + } + + public void setFamily(String family) { + this.family = family; + } + + @Column(name = "MEMBER", nullable = false, length = 500) + public String getMember() { + return this.member; + } + + public void setMember(String member) { + this.member = member; + } + + @Column(name = "ATT_NAME", nullable = false, length = 500) + public String getAttName() { + return this.attName; + } + + public void setAttName(String attName) { + this.attName = attName; + } + + @Column(name = "DATA_TYPE", nullable = false, precision = 22, scale = 0) + public BigDecimal getDataType() { + return this.dataType; + } + + public void setDataType(BigDecimal dataType) { + this.dataType = dataType; + } + + @Column(name = "DATA_FORMAT", nullable = false, precision = 22, scale = 0) + public BigDecimal getDataFormat() { + return this.dataFormat; + } + + public void setDataFormat(BigDecimal dataFormat) { + this.dataFormat = dataFormat; + } + + @Column(name = "WRITABLE", nullable = false, precision = 22, scale = 0) + public BigDecimal getWritable() { + return this.writable; + } + + public void setWritable(BigDecimal writable) { + this.writable = writable; + } + + @Column(name = "MAX_DIM_X", precision = 22, scale = 0) + public BigDecimal getMaxDimX() { + return this.maxDimX; + } + + public void setMaxDimX(BigDecimal maxDimX) { + this.maxDimX = maxDimX; + } + + @Column(name = "MAX_DIM_Y", precision = 22, scale = 0) + public BigDecimal getMaxDimY() { + return this.maxDimY; + } + + public void setMaxDimY(BigDecimal maxDimY) { + this.maxDimY = maxDimY; + } + + @Column(name = "LEVELG", precision = 22, scale = 0) + public BigDecimal getLevelg() { + return this.levelg; + } + + public void setLevelg(BigDecimal levelg) { + this.levelg = levelg; + } + + @Column(name = "FACILITY", nullable = false, length = 100) + public String getFacility() { + return this.facility; + } + + public void setFacility(String facility) { + this.facility = facility; + } + + @Column(name = "ARCHIVABLE", precision = 22, scale = 0) + public BigDecimal getArchivable() { + return this.archivable; + } + + public void setArchivable(BigDecimal archivable) { + this.archivable = archivable; + } + + @Column(name = "SUBSTITUTE", precision = 22, scale = 0) + public BigDecimal getSubstitute() { + return this.substitute; + } + + public void setSubstitute(BigDecimal substitute) { + this.substitute = substitute; + } + +} diff --git a/src/main/java/fr/soleil/archiving/snap/api/model/Context.java b/src/main/java/fr/soleil/archiving/snap/api/model/Context.java new file mode 100644 index 0000000000000000000000000000000000000000..49f01db2f800a3ed9e58b644219a85f9d30d5a5e --- /dev/null +++ b/src/main/java/fr/soleil/archiving/snap/api/model/Context.java @@ -0,0 +1,99 @@ +package fr.soleil.archiving.snap.api.model; +// Generated 8 janv. 2021 � 16:24:38 by Hibernate Tools 4.3.5.Final + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * Context generated by hbm2java + */ +@Entity +@Table(name = "CONTEXT") +public class Context implements java.io.Serializable { + + private int idContext; + private Date time; + private String name; + private String author; + private String reason; + private String description; + + public Context() { + } + + public Context(int idContext) { + this.idContext = idContext; + } + + public Context(int idContext, Date time, String name, String author, String reason, String description) { + this.idContext = idContext; + this.time = time; + this.name = name; + this.author = author; + this.reason = reason; + this.description = description; + } + + @Id + + @Column(name = "ID_CONTEXT", nullable = false, precision = 5, scale = 0) + public int getIdContext() { + return this.idContext; + } + + public void setIdContext(int idContext) { + this.idContext = idContext; + } + + @Temporal(TemporalType.DATE) + @Column(name = "TIME", length = 7) + public Date getTime() { + return this.time; + } + + public void setTime(Date time) { + this.time = time; + } + + @Column(name = "NAME", length = 256) + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + @Column(name = "AUTHOR", length = 64) + public String getAuthor() { + return this.author; + } + + public void setAuthor(String author) { + this.author = author; + } + + @Column(name = "REASON", length = 640) + public String getReason() { + return this.reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + @Column(name = "DESCRIPTION", length = 1256) + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/fr/soleil/archiving/snap/api/model/Snapshot.java b/src/main/java/fr/soleil/archiving/snap/api/model/Snapshot.java index 9c6bc1ef3d5d01a48de8aab33b005cc3a339fb2c..aa6d0c25b790275b668851caad8d556f0bdf98e8 100644 --- a/src/main/java/fr/soleil/archiving/snap/api/model/Snapshot.java +++ b/src/main/java/fr/soleil/archiving/snap/api/model/Snapshot.java @@ -8,7 +8,7 @@ import javax.persistence.Id; import javax.persistence.Table; @Entity -@Table(name = "SNAPSHOT", schema = "SNAP") +@Table(name = "SNAPSHOT") public class Snapshot implements Serializable { /** * diff --git a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/AbstractValDAOTest.java b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/AbstractValDAOTest.java index eff392b01e1b1705b79ddcf130facf60182c53dd..af492d112a5d7388d8b5097eef2b6c785ac8ada7 100644 --- a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/AbstractValDAOTest.java +++ b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/AbstractValDAOTest.java @@ -5,6 +5,7 @@ import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.annotation.Rollback; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; @@ -13,10 +14,12 @@ import fr.soleil.archiving.snap.api.persistence.spring.dao.ValDAO; import fr.soleil.archiving.snap.api.persistence.spring.dto.Val; @Rollback(true) +@ActiveProfiles({ "test" }) @ContextConfiguration({ "classpath:beans.xml" }) @Transactional @RunWith(SpringJUnit4ClassRunner.class) public abstract class AbstractValDAOTest<V extends Val> { + protected void compare(V original, V copy) { assertNotNull(copy); } diff --git a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/ScNum1ValDAOTest.java b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/ScNum1ValDAOTest.java index f7c383e572ff2fdd1efaafe10dede7496a4762fd..cddbf2b8131f002a37fe80ed60c5f5e37bcea609 100644 --- a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/ScNum1ValDAOTest.java +++ b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/ScNum1ValDAOTest.java @@ -2,6 +2,7 @@ package fr.soleil.archiving.snap.api.persistence.spring.dao.test; import static org.junit.Assert.assertEquals; +import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -49,4 +50,15 @@ public class ScNum1ValDAOTest extends AbstractValDAOTest<ScNum1Val> { protected ValDAO<ScNum1Val> getDao() { return dao; } + + @Test + public void testFetchFromBdd() { + CompositeId compositeId = new CompositeId(); + int idAtt = 245; + int idSnap = 235; + compositeId.setIdAtt(idAtt); + compositeId.setIdSnap(idSnap); + ScNum1Val val = getDao().findByKey(compositeId); + assertEquals(val.getValue(), 23.0, 0); + } } diff --git a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/SnapshotDAOTest.java b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/SnapshotDAOTest.java index ec694a6cfd898540e061a797feadc0d38c7a0e25..8a3bc56570385d5ab5f0e813d267ea3252052614 100644 --- a/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/SnapshotDAOTest.java +++ b/src/test/java/fr/soleil/archiving/snap/api/persistence/spring/dao/test/SnapshotDAOTest.java @@ -8,6 +8,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +17,7 @@ import fr.soleil.archiving.snap.api.model.Snapshot; import fr.soleil.archiving.snap.api.persistence.spring.dao.SnapshotDAO; @Rollback(true) +@ActiveProfiles({ "test" }) @ContextConfiguration({ "classpath:beans.xml" }) @Transactional @RunWith(SpringJUnit4ClassRunner.class) diff --git a/src/test/resources/beans-exemple.xml b/src/test/resources/beans-exemple.xml new file mode 100644 index 0000000000000000000000000000000000000000..41180c882e5e97fc7967e234274e3bbebad6c0e5 --- /dev/null +++ b/src/test/resources/beans-exemple.xml @@ -0,0 +1,77 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:aop="http://www.springframework.org/schema/aop" + xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> + <context:component-scan base-package="fr.soleil.archiving.snap.api"/> + <!-- DATASOURCE DEFINITION VVVVVVV--> + <bean id="dataSource" + class="org.apache.commons.dbcp.BasicDataSource" + destroy-method="close"> + <property name="initialSize" value="8"/> + <property name="maxActive" value="4"/> + <property name="maxIdle" value="8"/> + + <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> + <property name="url" value="jdbc:oracle:thin:@195.221.4.203:1521:TEST11SE" /> + <property name="username" value="snap" /> + <property name="password" value="snap" /> + </bean> + <!-- DATASOURCE DEFINITION ^^^^^^--> + + <!-- HIBERNATE DEFINITION VVVVVVV--> + <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> + <property name="dataSource" ref="dataSource"/> + + <property name="mappingResources"> + <list> + <value>valueTables.hbm.xml</value> + </list> + </property> + <property name="packagesToScan" value="fr.soleil.archiving.snap.api.model" /> + + <property name="hibernateProperties"> + <value> + hibernate.dialect=org.hibernate.dialect.Oracle10gDialect + hibernate.default_schema=SNAP + hibernate.show_sql=true + hibernate.format_sql=true + hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory + hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext + hibernate.connection.autocommit=false + hibernate.connection.release_mode=after_transaction + hibernate.generate_statistics=true + </value> + </property> + </bean> + <!-- HIBERNATE DEFINITION ^^^^^^--> + + <!-- TRANSACTIONS DEFINITIONS VVVVVVV--> + <!-- MANAGER --> + <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> + <property name="sessionFactory" ref="sessionFactory"/> + </bean> + + <tx:annotation-driven transaction-manager="transactionManager"/> + + <!-- DEFINES AN "ADVICE" IE. A WAY TO USE THE TRANSACTION MANAGER AROUND METHODS --> + <tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- the transactional advice (i.e. what 'happens'; see the <aop:advisor/> bean below) --> + <tx:attributes><!-- the transactional semantics... --> + <tx:method name="findBy*" read-only="true"/><!-- all methods starting with 'get' are read-only --> + <tx:method name="*"/><!-- other methods use the default transaction settings --> + </tx:attributes> + </tx:advice> + + <!-- DEFINES WHERE "ADVICES" WILL BE USED--> + <aop:config><!-- ensure that the above transactional advice runs for any execution of an operation defined by the FooService interface --> + <aop:pointcut id="valDAOOperation" expression="execution(* fr.soleil.archiving.snap.api.persistence.spring.dao.ValDAO.*(..))"/> + <aop:advisor advice-ref="txAdvice" pointcut-ref="valDAOOperation"/> + </aop:config> + <!-- TRANSACTIONS DEFINITIONS ^^^^^^--> + + +</beans> \ No newline at end of file diff --git a/src/test/resources/beans.xml b/src/test/resources/beans.xml index 41180c882e5e97fc7967e234274e3bbebad6c0e5..41fa94b85e3ee0ffcf124d3499abe3c066327761 100644 --- a/src/test/resources/beans.xml +++ b/src/test/resources/beans.xml @@ -16,12 +16,21 @@ <property name="maxActive" value="4"/> <property name="maxIdle" value="8"/> - <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> - <property name="url" value="jdbc:oracle:thin:@195.221.4.203:1521:TEST11SE" /> + <property name="driverClassName" value="org.h2.Driver" /> + <property name="url" value="jdbc:h2:mem:SNAP;DB_CLOSE_DELAY=-1;INIT=CREATE + SCHEMA IF NOT EXISTS SNAP\;SET SCHEMA SNAP;" /> <property name="username" value="snap" /> <property name="password" value="snap" /> </bean> <!-- DATASOURCE DEFINITION ^^^^^^--> + <bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase"> + <property name="dataSource" ref="dataSource" /> + <property name="changeLog" value="classpath:liquibase/master.xml" /> + <!-- + contexts specifies the runtime contexts to use. + --> + <property name="contexts" value="test" /> + </bean> <!-- HIBERNATE DEFINITION VVVVVVV--> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> @@ -36,8 +45,8 @@ <property name="hibernateProperties"> <value> - hibernate.dialect=org.hibernate.dialect.Oracle10gDialect - hibernate.default_schema=SNAP + hibernate.dialect=org.hibernate.dialect.H2Dialect + hibernate.default_schema=PUBLIC hibernate.show_sql=true hibernate.format_sql=true hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory diff --git a/src/test/resources/liquibase/data/ast.csv b/src/test/resources/liquibase/data/ast.csv new file mode 100644 index 0000000000000000000000000000000000000000..38b6d41a60e4ee60d1cbb7628e1bd7ea48b65a26 --- /dev/null +++ b/src/test/resources/liquibase/data/ast.csv @@ -0,0 +1,2 @@ +ID,TIME,FULL_NAME,DEVICE,DOMAIN,FAMILY,MEMBER,ATT_NAME,DATA_TYPE,DATA_FORMAT,WRITABLE,MAX_DIM_X,MAX_DIM_Y,LEVELG,FACILITY,ARCHIVABLE,SUBSTITUTE +245,2020-03-11,tango/tangotest/1/short_scalar_ro,tango/tangotest/1,tango,tangotest,1,short_scalar_ro,2,0,0,1,0,0,HOST:port,0,0 diff --git a/src/test/resources/liquibase/data/context.csv b/src/test/resources/liquibase/data/context.csv new file mode 100644 index 0000000000000000000000000000000000000000..b8597b1e182ae15974b8b344abdf92ae82d2dff7 --- /dev/null +++ b/src/test/resources/liquibase/data/context.csv @@ -0,0 +1,7 @@ +ID_CONTEXT,TIME,NAME,AUTHOR,REASON,DESCRIPTION +76,2020-03-11,test scalars,girardot,test scalar attributes,contains tangotest scalar attributes +77,2020-04-08,test all scalars,girardot,test all kinds of scalar attributes,contains tangotest scalar attributes +78,2020-04-14,Test add/remove attributes,girardot,TANGOARCH-629,"Add all tangotest1 attributes, remove some of them, register and see what's left" +80,2020-08-06,test scalars2,girardot,test scalar attributes,contains tangotest scalar attributes +79,2020-04-20,test2,spjz,essai2,essai bug2 +75,2020-02-05,test4,piketty,test too,test diff --git a/src/test/resources/liquibase/data/snapshot.csv b/src/test/resources/liquibase/data/snapshot.csv new file mode 100644 index 0000000000000000000000000000000000000000..d429e5dc3764a6561383d38948c73e74c0f33ed3 --- /dev/null +++ b/src/test/resources/liquibase/data/snapshot.csv @@ -0,0 +1,32 @@ +ID_SNAP,ID_CONTEXT,TIME,SNAP_COMMENT +209,76,2020-03-11 10:17:11, +214,76,2020-04-06 12:15:12, +217,76,2020-04-06 13:46:25.239, +219,76,2020-04-08 14:53:12.589, +220,76,2020-04-08 15:06:59.309, +221,76,2020-04-08 15:14:02.01, +224,76,2020-04-08 15:23:26.247, +226,76,2020-04-08 15:32:04.588, +233,76,2020-04-08 16:03:09.622, +236,77,2020-04-08 17:20:12.293, +216,76,2020-04-06 12:20:12.325, +231,76,2020-04-08 15:53:45.697, +207,75,2020-03-11 09:17:17.474, +210,76,2020-04-06 10:43:37.439, +230,76,2020-04-08 15:45:50.28, +234,76,2020-04-08 16:24:42.768, +208,76,2020-03-11 09:56:09.147, +211,76,2020-04-06 10:57:27.392, +215,76,2020-04-06 12:19:55.687, +223,76,2020-04-08 15:17:07.947, +225,76,2020-04-08 15:30:20.314, +228,76,2020-04-08 15:39:16.911, +229,76,2020-04-08 15:39:18.216, +232,76,2020-04-08 15:58:51.635, +237,75,2020-04-20 12:08:23.727, +212,76,2020-04-06 11:54:49.818, +213,76,2020-04-06 11:58:59.342, +218,76,2020-04-07 16:22:33.81, +222,76,2020-04-08 15:15:28.57, +227,76,2020-04-08 15:33:28.613, +235,76,2020-04-08 17:15:38.751, diff --git a/src/test/resources/liquibase/data/tScNum1Val.csv b/src/test/resources/liquibase/data/tScNum1Val.csv new file mode 100644 index 0000000000000000000000000000000000000000..c9dfa779085bc436e671d7db525eba6776d66952 --- /dev/null +++ b/src/test/resources/liquibase/data/tScNum1Val.csv @@ -0,0 +1,2 @@ +ID_SNAP,ID_ATT,VALUE +235,245,23.0 diff --git a/src/test/resources/liquibase/data/test-data.xml b/src/test/resources/liquibase/data/test-data.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7442fd9fd4763b57206bd46716f958ad905ca5a --- /dev/null +++ b/src/test/resources/liquibase/data/test-data.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"> + <changeSet author="jhaderer" id="000-testdata-1" context="test"> + <loadUpdateData + tableName="context" + primaryKey="ID_CONTEXT" + encoding="UTF-8" + relativeToChangelogFile="true" + file="context.csv"> + </loadUpdateData> + </changeSet> + <changeSet author="jhaderer" id="000-testdata-2" context="test"> + <loadUpdateData + tableName="snapshot" + primaryKey="ID_SNAP" + encoding="UTF-8" + relativeToChangelogFile="true" + file="snapshot.csv"> + </loadUpdateData> + </changeSet> + <changeSet author="jhaderer" id="000-testdata-3" context="test"> + <loadUpdateData + tableName="AST" + primaryKey="ID" + encoding="UTF-8" + relativeToChangelogFile="true" + file="ast.csv"> + </loadUpdateData> + </changeSet> + <changeSet author="jhaderer" id="000-testdata-4" context="test"> + <loadUpdateData + tableName="T_SC_NUM_1VAL" + primaryKey="ID_SNAP,ID_ATT" + encoding="UTF-8" + relativeToChangelogFile="true" + file="tScNum1Val.csv"> + </loadUpdateData> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/src/test/resources/liquibase/initDB.xml b/src/test/resources/liquibase/initDB.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca7bde39a4d314d427f59662763b63888ae45c2c --- /dev/null +++ b/src/test/resources/liquibase/initDB.xml @@ -0,0 +1,226 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"> + + <changeSet author="jelmoni (generated)" id="1610354256692-4"> + <createTable tableName="AST"> + <column name="ID" type="NUMBER(5, 0)"> + <constraints nullable="false"/> + </column> + <column name="TIME" type="date"/> + <column name="FULL_NAME" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="DEVICE" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="DOMAIN" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="FAMILY" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="MEMBER" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="ATT_NAME" type="VARCHAR2(500 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="DATA_TYPE" type="NUMBER"> + <constraints nullable="false"/> + </column> + <column name="DATA_FORMAT" type="NUMBER"> + <constraints nullable="false"/> + </column> + <column name="WRITABLE" type="NUMBER"> + <constraints nullable="false"/> + </column> + <column name="MAX_DIM_X" type="NUMBER"/> + <column name="MAX_DIM_Y" type="NUMBER"/> + <column name="LEVELG" type="NUMBER"/> + <column name="FACILITY" type="VARCHAR2(100 BYTE)"> + <constraints nullable="false"/> + </column> + <column name="ARCHIVABLE" type="NUMBER"/> + <column name="SUBSTITUTE" type="NUMBER"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-5"> + <createTable tableName="CONTEXT"> + <column name="ID_CONTEXT" type="NUMBER(5, 0)"> + <constraints nullable="false"/> + </column> + <column name="TIME" type="date"/> + <column name="NAME" type="VARCHAR2(256 BYTE)"/> + <column name="AUTHOR" type="VARCHAR2(64 BYTE)"/> + <column name="REASON" type="VARCHAR2(640 BYTE)"/> + <column name="DESCRIPTION" type="VARCHAR2(1256 BYTE)"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-6"> + <createTable tableName="LIST"> + <column name="ID_CONTEXT" type="NUMBER(5, 0)"/> + <column name="ID_ATT" type="NUMBER(5, 0)"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-7"> + <createTable tableName="SNAPSHOT"> + <column name="ID_SNAP" type="NUMBER(5, 0)"> + <constraints nullable="false"/> + </column> + <column name="ID_CONTEXT" type="NUMBER(5, 0)"/> + <column name="TIME" type="TIMESTAMP(3)"/> + <column name="SNAP_COMMENT" type="VARCHAR2(2500 BYTE)"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-8"> + <createTable tableName="T_SC_NUM_1VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="VALUE" type="NUMBER"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-9"> + <createTable tableName="T_SC_NUM_2VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="READ_VALUE" type="NUMBER"/> + <column name="WRITE_VALUE" type="NUMBER"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-10"> + <createTable tableName="T_SC_STR_1VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="VALUE" type="VARCHAR2(2500 BYTE)"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-11"> + <createTable tableName="T_SC_STR_2VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="READ_VALUE" type="VARCHAR2(2500 BYTE)"/> + <column name="WRITE_VALUE" type="VARCHAR2(2500 BYTE)"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-12"> + <createTable tableName="T_SP_1VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="DIM_X" type="NUMBER"/> + <column name="VALUE" type="CLOB"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-13"> + <createTable tableName="T_SP_2VAL"> + <column name="ID_SNAP" type="NUMBER"/> + <column name="ID_ATT" type="NUMBER"/> + <column name="DIM_X" type="NUMBER"/> + <column name="READ_VALUE" type="CLOB"/> + <column name="WRITE_VALUE" type="CLOB"/> + </createTable> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-14"> + <createIndex indexName="IND_IDAST" tableName="AST"> + <column name="ID"/> + </createIndex> + <addPrimaryKey columnNames="ID" constraintName="PK_AST" tableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-15"> + <createIndex indexName="IND_IDCONTEXT" tableName="CONTEXT"> + <column name="ID_CONTEXT"/> + </createIndex> + <addPrimaryKey columnNames="ID_CONTEXT" constraintName="PK_CONTEXT" tableName="CONTEXT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-16"> + <createIndex indexName="IND_IDSNAPSHOT" tableName="SNAPSHOT"> + <column name="ID_SNAP"/> + </createIndex> + <addPrimaryKey columnNames="ID_SNAP" constraintName="PK_SNAPSHOT" tableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-17"> + <createIndex indexName="IND_IDLIST" tableName="LIST"> + <column name="ID_CONTEXT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-18"> + <createIndex indexName="IND_SC_NUM_1VAL" tableName="T_SC_NUM_1VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-19"> + <createIndex indexName="IND_SC_NUM_2VAL" tableName="T_SC_NUM_2VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-20"> + <createIndex indexName="IND_SC_STR_1VAL" tableName="T_SC_STR_1VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-21"> + <createIndex indexName="IND_SC_STR_2VAL" tableName="T_SC_STR_2VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-22"> + <createIndex indexName="IND_SP_1VAL" tableName="T_SP_1VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-23"> + <createIndex indexName="IND_SP_2VAL" tableName="T_SP_2VAL"> + <column name="ID_SNAP"/> + <column name="ID_ATT"/> + </createIndex> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-24"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SC_NUM_1VAL" constraintName="FKSNAP_SC_NUM_1VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-25"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SC_NUM_1VAL" constraintName="FKSNAP_SC_NUM_1VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-26"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SC_NUM_2VAL" constraintName="FKSNAP_SC_NUM_2VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-27"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SC_NUM_2VAL" constraintName="FKSNAP_SC_NUM_2VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-28"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SC_STR_1VAL" constraintName="FKSNAP_SC_STR_1VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-29"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SC_STR_1VAL" constraintName="FKSNAP_SC_STR_1VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-30"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SC_STR_2VAL" constraintName="FKSNAP_SC_STR_2VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-31"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SC_STR_2VAL" constraintName="FKSNAP_SC_STR_2VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-32"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SP_1VAL" constraintName="FKSNAP_SP_1VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-33"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SP_1VAL" constraintName="FKSNAP_SP_1VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-34"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="T_SP_2VAL" constraintName="FKSNAP_SP_2VAL_ATTID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-35"> + <addForeignKeyConstraint baseColumnNames="ID_SNAP" baseTableName="T_SP_2VAL" constraintName="FKSNAP_SP_2VAL_SNAPID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_SNAP" referencedTableName="SNAPSHOT"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-36"> + <addForeignKeyConstraint baseColumnNames="ID_ATT" baseTableName="LIST" constraintName="FK_IDATTFROMLIST" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID" referencedTableName="AST"/> + </changeSet> + <changeSet author="jelmoni (generated)" id="1610354256692-37"> + <addForeignKeyConstraint baseColumnNames="ID_CONTEXT" baseTableName="LIST" constraintName="FK_IDCONTEXTFROMLIST" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ID_CONTEXT" referencedTableName="CONTEXT"/> + </changeSet> +</databaseChangeLog> diff --git a/src/test/resources/liquibase/master.xml b/src/test/resources/liquibase/master.xml new file mode 100644 index 0000000000000000000000000000000000000000..efc379f09edc79929d61e54989fb97e833526f1e --- /dev/null +++ b/src/test/resources/liquibase/master.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"> + <include file="initDB.xml" relativeToChangelogFile="true"/> + <include file="data/test-data.xml" relativeToChangelogFile="true"/> +</databaseChangeLog> \ No newline at end of file