diff --git a/node-schemas/build.gradle b/node-schemas/build.gradle index 921273bdf9..872980ce1a 100644 --- a/node-schemas/build.gradle +++ b/node-schemas/build.gradle @@ -16,12 +16,24 @@ repositories { } } +// Kapt plugin is hardcoded in output directory and sourcesets. Use a separate sourceset to keep the generated +// files in git and outside of the build directory (to avoid cleaning issues) sourceSets { main { kotlin { srcDir "${buildDir}/generated/source/kapt/main/" } } + generated { + java { + srcDir "${projectDir}/generated/source/kapt/main/" + compileClasspath += sourceSets.main.compileClasspath + sourceSets.main.output + } + } + test { + compileClasspath += sourceSets.generated.output + sourceSets.main.compileClasspath + runtimeClasspath += compileClasspath + } } dependencies { @@ -33,3 +45,34 @@ dependencies { // For H2 database support in persistence testCompile "com.h2database:h2:$h2_version" } + +// Generated files will be removed by gradle clean. Since we aren't running kapt every time we must preserve these files +// Note: The lines that actually invoke kapt are those in the project.afterEvaluate block. +task buildKapt(type: Copy) { + from "${buildDir}/generated" + into "${projectDir}/generated" +} + +// Kapt hijacks anything named "compile" +task buildGenerated(type: JavaCompile) { + source = sourceSets.generated.allJava + classpath = sourceSets.generated.compileClasspath + sourceSets.main.compileClasspath + sourceSets.main.output + destinationDir = file("$buildDir/classes/generated") +} + +// Remove the dependency on compile in kapt to avoid automatic kapt running - run :node-schemas:kaptKotlin explicitly. +project.afterEvaluate { + jar.dependsOn.each { jar.dependsOn.remove it } + buildGenerated.dependsOn.each { buildGenerated.dependsOn.remove it } + jar.dependsOn buildGenerated + compileTestKotlin.dependsOn buildGenerated + buildGenerated.dependsOn classes + compileKotlin.dependsOn.remove kaptKotlin + compileTestKotlin.dependsOn.remove kaptTestKotlin + buildKapt.dependsOn kaptKotlin + buildKapt.mustRunAfter kaptKotlin +} + +jar { + from sourceSets.generated.output +} diff --git a/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/AttachmentEntity.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/AttachmentEntity.java new file mode 100644 index 0000000000..3a36c5c53e --- /dev/null +++ b/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/AttachmentEntity.java @@ -0,0 +1,153 @@ +// Generated file do not edit, generated by io.requery.processor.EntityProcessor +package net.corda.node.services.persistence.schemas; + +import io.requery.Persistable; +import io.requery.meta.AttributeBuilder; +import io.requery.meta.AttributeDelegate; +import io.requery.meta.Type; +import io.requery.meta.TypeBuilder; +import io.requery.proxy.EntityProxy; +import io.requery.proxy.Property; +import io.requery.proxy.PropertyState; +import io.requery.util.function.Function; +import io.requery.util.function.Supplier; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import javax.annotation.Generated; +import net.corda.core.crypto.SecureHash; + +@Generated("io.requery.processor.EntityProcessor") +public class AttachmentEntity implements Attachment, Persistable { + public static final AttributeDelegate ATT_ID = new AttributeDelegate( + new AttributeBuilder("att_id", SecureHash.class) + .setProperty(new Property() { + @Override + public SecureHash get(AttachmentEntity entity) { + return entity.attId; + } + + @Override + public void set(AttachmentEntity entity, SecureHash value) { + entity.attId = value; + } + }) + .setPropertyName("getAttId") + .setPropertyState(new Property() { + @Override + public PropertyState get(AttachmentEntity entity) { + return entity.$attId_state; + } + + @Override + public void set(AttachmentEntity entity, PropertyState value) { + entity.$attId_state = value; + } + }) + .setKey(true) + .setGenerated(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .build()); + + public static final AttributeDelegate CONTENT = new AttributeDelegate( + new AttributeBuilder("content", byte[].class) + .setProperty(new Property() { + @Override + public byte[] get(AttachmentEntity entity) { + return entity.content; + } + + @Override + public void set(AttachmentEntity entity, byte[] value) { + entity.content = value; + } + }) + .setPropertyName("getContent") + .setPropertyState(new Property() { + @Override + public PropertyState get(AttachmentEntity entity) { + return entity.$content_state; + } + + @Override + public void set(AttachmentEntity entity, PropertyState value) { + entity.$content_state = value; + } + }) + .setGenerated(false) + .setLazy(false) + .setNullable(true) + .setUnique(false) + .setConverter(new net.corda.core.schemas.requery.converters.BlobConverter()) + .build()); + + public static final Type $TYPE = new TypeBuilder(AttachmentEntity.class, "attachments") + .setBaseType(Attachment.class) + .setCacheable(true) + .setImmutable(false) + .setReadOnly(false) + .setStateless(false) + .setFactory(new Supplier() { + @Override + public AttachmentEntity get() { + return new AttachmentEntity(); + } + }) + .setProxyProvider(new Function>() { + @Override + public EntityProxy apply(AttachmentEntity entity) { + return entity.$proxy; + } + }) + .addAttribute(ATT_ID) + .addAttribute(CONTENT) + .build(); + + private PropertyState $attId_state; + + private PropertyState $content_state; + + private SecureHash attId; + + private byte[] content; + + private final transient EntityProxy $proxy = new EntityProxy(this, $TYPE); + + public AttachmentEntity() { + } + + @Override + public SecureHash getAttId() { + return $proxy.get(ATT_ID); + } + + public void setAttId(SecureHash attId) { + $proxy.set(ATT_ID, attId); + } + + @Override + public byte[] getContent() { + return $proxy.get(CONTENT); + } + + public void setContent(byte[] content) { + $proxy.set(CONTENT, content); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof AttachmentEntity && ((AttachmentEntity)obj).$proxy.equals(this.$proxy); + } + + @Override + public int hashCode() { + return $proxy.hashCode(); + } + + @Override + public String toString() { + return $proxy.toString(); + } +} diff --git a/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/Models.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/Models.java new file mode 100644 index 0000000000..fb8e8d03fb --- /dev/null +++ b/node-schemas/generated/source/kapt/main/net/corda/node/services/persistence/schemas/Models.java @@ -0,0 +1,16 @@ +// Generated file do not edit, generated by io.requery.processor.EntityProcessor +package net.corda.node.services.persistence.schemas; + +import io.requery.meta.EntityModel; +import io.requery.meta.EntityModelBuilder; +import javax.annotation.Generated; + +@Generated("io.requery.processor.EntityProcessor") +public class Models { + public static final EntityModel PERSISTENCE = new EntityModelBuilder("persistence") + .addType(AttachmentEntity.$TYPE) + .build(); + + private Models() { + } +} diff --git a/node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/Models.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/Models.java similarity index 100% rename from node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/Models.java rename to node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/Models.java diff --git a/node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultCashBalancesEntity.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultCashBalancesEntity.java similarity index 100% rename from node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultCashBalancesEntity.java rename to node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultCashBalancesEntity.java diff --git a/node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultStatesEntity.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultStatesEntity.java similarity index 100% rename from node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultStatesEntity.java rename to node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultStatesEntity.java diff --git a/node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultTxnNoteEntity.java b/node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultTxnNoteEntity.java similarity index 100% rename from node-schemas/build/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultTxnNoteEntity.java rename to node-schemas/generated/source/kapt/main/net/corda/node/services/vault/schemas/VaultTxnNoteEntity.java