Skip to content

Commit 222dd6c

Browse files
committed
Use Hypernate library instead of subpackage
This commit finally removes the dataaccess subpackage and replaces relevant code to import the externalized Hypernate library. As Hypernate has not been officially published yet, we just use a prepackaged JAR file.
1 parent d31b322 commit 222dd6c

40 files changed

+169
-1035
lines changed

smart-contract/hyperledger-fabric/v2/java/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ COPY buildSrc/ buildSrc/
66
COPY build.gradle.kts ./
77
COPY gradle.properties ./
88
COPY specs/ ./specs/
9+
COPY libs/ ./libs/
910

1011
RUN gradle --no-daemon shadowJar
1112

smart-contract/hyperledger-fabric/v2/java/build.gradle.kts

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.diffplug.gradle.spotless.SpotlessExtension
44
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
55
import hu.bme.mit.ftsrg.openjmlhelper.*
6-
import java.io.File
76

87
val openJMLDir = layout.projectDirectory.dir(".openjml")
98
val openJMLJavaHomeDir = openJMLDir.dir("jdk")
@@ -21,7 +20,7 @@ plugins {
2120
id("com.diffplug.spotless") version "6.19.0"
2221
}
2322

24-
group = "hu.bme.mit.ftsrg.tpcc"
23+
group = "hu.bme.mit.ftsrg.chaincode.tpcc"
2524

2625
version = "0.1.0"
2726

@@ -31,7 +30,9 @@ repositories {
3130
}
3231

3332
dependencies {
34-
implementation("ch.qos.logback:logback-classic:1.4.8")
33+
implementation("ch.qos.logback:logback-core:1.5.6")
34+
implementation("ch.qos.logback:logback-classic:1.5.6")
35+
implementation("org.slf4j:slf4j-api:2.0.13")
3536
implementation("com.google.code.gson:gson:2.10.1")
3637
implementation("com.jcabi:jcabi-aspects:0.25.1")
3738
implementation("org.aspectj:aspectjrt:1.9.19")
@@ -40,6 +41,7 @@ dependencies {
4041
implementation("org.hyperledger.fabric:fabric-protos:0.3.0")
4142
implementation("org.json:json:20230227")
4243
implementation("org.projectlombok:lombok:1.18.28")
44+
implementation(files("libs/hypernate-0.1.0.jar"))
4345
// Included also as implementation dependency so shadow will package it
4446
implementation(files("$openJMLDir/jmlruntime.jar"))
4547

@@ -60,9 +62,7 @@ tasks.named<ShadowJar>("shadowJar") {
6062
tasks.named<Test>("test") { useJUnitPlatform() }
6163

6264
if (!noOpenJML) {
63-
tasks.named<ShadowJar>("shadowJar") {
64-
dependsOn(tasks.named("initOpenJML"))
65-
}
65+
tasks.named<ShadowJar>("shadowJar") { dependsOn(tasks.named("initOpenJML")) }
6666

6767
tasks.test {
6868
java {
@@ -76,14 +76,20 @@ if (!noOpenJML) {
7676
// Only when not compiling because of Spotless
7777
if (!gradle.startParameter.taskNames.any { it.contains("spotlessApply") }) {
7878
val mode =
79-
when (System.getenv("JML_MODE")) {
80-
"esc" -> "esc"
81-
else -> "rac"
82-
}
79+
when (System.getenv("JML_MODE")) {
80+
"esc" -> "esc"
81+
else -> "rac"
82+
}
8383
options.isFork = true
8484
options.compilerArgs.addAll(
85-
listOf(
86-
"-jml", "-$mode", "-timeout", "30", "--nullable-by-default", "--specs-path", "specs/"))
85+
listOf(
86+
"-jml",
87+
"-$mode",
88+
"-timeout",
89+
"30",
90+
"--nullable-by-default",
91+
"--specs-path",
92+
"specs/"))
8793
options.forkOptions.javaHome = openJMLJavaHomeDir.asFile
8894
}
8995
}
@@ -120,4 +126,3 @@ if (!noOpenJML) {
120126
logger.lifecycle("✅ OpenJML successfully initialized in $openJMLDir")
121127
}
122128
}
123-
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
openJMLVersion = 0.17.0-alpha-15
2+
withoutOpenJML = false
Binary file not shown.

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/TPCC.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.exception.EntityExistsException;
6-
import hu.bme.mit.ftsrg.chaincode.dataaccess.exception.EntityNotFoundException;
5+
import hu.bme.mit.ftsrg.hypernate.entity.EntityExistsException;
6+
import hu.bme.mit.ftsrg.hypernate.entity.EntityNotFoundException;
77
import hu.bme.mit.ftsrg.chaincode.tpcc.data.input.*;
88
import hu.bme.mit.ftsrg.chaincode.tpcc.data.output.*;
99
import hu.bme.mit.ftsrg.chaincode.tpcc.middleware.TPCCContext;

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/Customer.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public class Customer extends SerializableEntityBase<Customer> {
7+
public class Customer implements Entity<Customer> {
88

99
public /*@ pure @*/ int getC_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/District.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class District extends SerializableEntityBase<District> {
7+
public final class District implements Entity<District> {
88

99
public /*@ pure @*/ int getD_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/History.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class History extends SerializableEntityBase<History> {
7+
public final class History implements Entity<History> {
88

99
public /*@ pure @*/ int getH_c_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/Item.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class Item extends SerializableEntityBase<Item> {
7+
public final class Item implements Entity<Item> {
88

99
public /*@ pure @*/ int getI_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/NewOrder.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class NewOrder extends SerializableEntityBase<NewOrder> {
7+
public final class NewOrder implements Entity<NewOrder> {
88

99
public /*@ pure @*/ int getNo_o_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/Order.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class Order extends SerializableEntityBase<Order> {
7+
public final class Order implements Entity<Order> {
88

99
public /*@ pure @*/ int getO_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/OrderLine.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class OrderLine extends SerializableEntityBase<OrderLine> {
7+
public final class OrderLine implements Entity<OrderLine> {
88

99
public /*@ pure @*/ int getOl_o_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/Stock.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public final class Stock extends SerializableEntityBase<Stock> {
7+
public final class Stock implements Entity<Stock> {
88

99
public /*@ pure @*/ int getS_i_id();
1010

smart-contract/hyperledger-fabric/v2/java/specs/hu/bme/mit/ftsrg/chaincode/tpcc/data/entity/Warehouse.jml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package hu.bme.mit.ftsrg.chaincode.tpcc.data.entity;
44

5-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntityBase;
5+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
66

7-
public class Warehouse extends SerializableEntityBase<Warehouse> {
7+
public class Warehouse implements Entity<Warehouse> {
88

99
public /*@ pure @*/ int getW_id();
1010

smart-contract/hyperledger-fabric/v2/java/src/main/java/hu/bme/mit/ftsrg/chaincode/MethodLogger.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hu.bme.mit.ftsrg.chaincode;
22

3-
import hu.bme.mit.ftsrg.chaincode.dataaccess.SerializableEntity;
3+
import hu.bme.mit.ftsrg.hypernate.entity.Entity;
44
import java.util.ArrayList;
55
import java.util.List;
66
import org.hyperledger.fabric.contract.Context;
@@ -40,7 +40,7 @@ public String generateParamsString(final Context ctx, final int... params) {
4040
return "%s,%s".formatted(ctx.toString(), generateParamsString(params));
4141
}
4242

43-
public <Type extends SerializableEntity<Type>> String generateParamsString(
43+
public <Type extends Entity<Type>> String generateParamsString(
4444
final Context ctx, final Type obj) {
4545
return "%s,%s".formatted(ctx.toString(), obj.toString());
4646
}

0 commit comments

Comments
 (0)