docs(keycloak-session-store): import the session-storage lab as a new project
The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
43bccd08a8
commit
b2963105a8
+286
@@ -0,0 +1,286 @@
|
||||
Scope adapter-outbound-objectstorage - module inventory and denominator
|
||||
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
||||
generatedAt=2026-08-30T02:35:56+00:00
|
||||
|
||||
total tracked: 206
|
||||
|
||||
$ git ls-files 'adapter/outbound/objectstorage' | sed "s|^adapter/outbound/objectstorage/||" | awk -F/ '{print $1}' | sort | uniq -c | sort -rn
|
||||
202 src
|
||||
1 gradle.lockfile
|
||||
1 build.gradle
|
||||
1 README.md
|
||||
1 CLAUDE.md
|
||||
exit=0
|
||||
|
||||
$ git ls-files 'adapter/outbound/objectstorage/src' | sed "s|^adapter/outbound/objectstorage/src/||" | awk -F/ '{print $1}' | sort | uniq -c | sort -rn
|
||||
147 main
|
||||
49 test
|
||||
2 objectStorageMinioFaultTest
|
||||
2 objectStorageMinioContractTest
|
||||
2 objectStorageAwsQualificationTest
|
||||
exit=0
|
||||
|
||||
=== per source set ===
|
||||
main: java=147 loc=14336 nonjava=0
|
||||
objectStorageAwsQualificationTest: java=2 loc=51 nonjava=0
|
||||
objectStorageMinioContractTest: java=2 loc=316 nonjava=0
|
||||
objectStorageMinioFaultTest: java=2 loc=179 nonjava=0
|
||||
test: java=48 loc=6753 nonjava=1
|
||||
|
||||
=== package map (main) ===
|
||||
$ git ls-files 'adapter/outbound/objectstorage/src/main' | grep '\.java$' | sed 's|.*/java/||;s|/[^/]*\.java$||' | sort | uniq -c | sort -rn
|
||||
26 dev/caskeleton/adapter/outbound/objectstorage/s3
|
||||
24 dev/caskeleton/adapter/outbound/objectstorage/control
|
||||
23 dev/caskeleton/adapter/outbound/objectstorage/kernel
|
||||
19 dev/caskeleton/adapter/outbound/objectstorage/config
|
||||
13 dev/caskeleton/adapter/outbound/objectstorage/direct
|
||||
8 dev/caskeleton/adapter/outbound/objectstorage/readiness
|
||||
8 dev/caskeleton/adapter/outbound/objectstorage/maintenance
|
||||
7 dev/caskeleton/adapter/outbound/objectstorage/codec
|
||||
6 dev/caskeleton/adapter/outbound/objectstorage/filesystem
|
||||
5 dev/caskeleton/adapter/outbound/objectstorage/multipart
|
||||
4 dev/caskeleton/adapter/outbound/objectstorage/provider
|
||||
4 dev/caskeleton/adapter/outbound/objectstorage
|
||||
exit=0
|
||||
|
||||
=== package map (test) ===
|
||||
--- objectStorageAwsQualificationTest
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/qualification
|
||||
--- objectStorageMinioContractTest
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/qualification
|
||||
--- objectStorageMinioFaultTest
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/qualification
|
||||
--- test
|
||||
14 dev/caskeleton/adapter/outbound/objectstorage/s3
|
||||
7 dev/caskeleton/adapter/outbound/objectstorage/kernel
|
||||
6 dev/caskeleton/adapter/outbound/objectstorage
|
||||
5 dev/caskeleton/adapter/outbound/objectstorage/direct
|
||||
5 dev/caskeleton/adapter/outbound/objectstorage/config
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/multipart
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/maintenance
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/filesystem
|
||||
2 dev/caskeleton/adapter/outbound/objectstorage/codec
|
||||
1 dev/caskeleton/adapter/outbound/objectstorage/readiness
|
||||
1 dev/caskeleton/adapter/outbound/objectstorage/control
|
||||
1 dev/caskeleton/adapter/outbound/objectstorage/contract
|
||||
|
||||
$ git ls-files 'adapter/outbound/objectstorage' | grep -v '\.java$'
|
||||
adapter/outbound/objectstorage/CLAUDE.md
|
||||
adapter/outbound/objectstorage/README.md
|
||||
adapter/outbound/objectstorage/build.gradle
|
||||
adapter/outbound/objectstorage/gradle.lockfile
|
||||
adapter/outbound/objectstorage/src/test/resources/object-storage/minio-provider-evidence.json
|
||||
exit=0
|
||||
|
||||
=== main files by size ===
|
||||
$ git ls-files 'adapter/outbound/objectstorage/src/main' | grep '\.java$' | xargs wc -l | sort -rn | head -40
|
||||
14336 total
|
||||
898 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/CanonicalJsonObjectControlRecordCodec.java
|
||||
523 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/RoutingObjectMutationAdapter.java
|
||||
509 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectMultipartCoordinator.java
|
||||
416 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/StagedObjectPublicationKernel.java
|
||||
367 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ClientPolicy.java
|
||||
361 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ProviderBinding.java
|
||||
342 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3AsyncResponseBodyBridge.java
|
||||
335 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectTransferCoordinator.java
|
||||
324 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3DirectMultipartProvider.java
|
||||
281 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ManagedMultipartProvider.java
|
||||
279 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ConditionalObjectControlStore.java
|
||||
276 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/ObjectStorageBindingCompiler.java
|
||||
270 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3AsyncRequestBodyBridge.java
|
||||
213 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ManagedObjectProvider.java
|
||||
210 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/ObjectOperationRecord.java
|
||||
198 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/ObjectDirectMultipartSessionRecord.java
|
||||
193 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/filesystem/LocalObjectStreamTransfer.java
|
||||
190 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ObjectStorageProviderContribution.java
|
||||
188 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/filesystem/LocalDevObjectDataStore.java
|
||||
188 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/ObjectPublicationHandoffRecord.java
|
||||
180 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/ObjectStagedObjectRecord.java
|
||||
172 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/codec/ObjectControlKeyCodec.java
|
||||
171 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectPublicationHandoffService.java
|
||||
169 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/maintenance/LegacyAdoptionApprovalCodec.java
|
||||
166 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectTransferSessionRecord.java
|
||||
164 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/ObjectStorageCapabilityConfig.java
|
||||
158 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/filesystem/LocalObjectPathGuard.java
|
||||
150 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectOperationEpochRecord.java
|
||||
147 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/RoutingObjectScanMaintenanceAdapter.java
|
||||
147 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/RoutingObjectReadAdapter.java
|
||||
144 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3DirectTransferProvider.java
|
||||
144 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/control/CanonicalJsonReader.java
|
||||
142 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectOperationStateMachine.java
|
||||
132 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/config/ObjectStorageCapabilityAssembler.java
|
||||
132 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/codec/ObjectRequestFingerprintCodec.java
|
||||
129 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/S3ObjectStorageAdapter.java
|
||||
127 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectOperationKernel.java
|
||||
122 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/maintenance/LegacyObjectAdoptionService.java
|
||||
120 adapter/outbound/objectstorage/src/main/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectTransferPolicy.java
|
||||
exit=0
|
||||
|
||||
=== test files by size ===
|
||||
$ git ls-files 'adapter/outbound/objectstorage/src' | grep '\.java$' | grep -v '/main/' | xargs wc -l | sort -rn | head -30
|
||||
7299 total
|
||||
480 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/config/ObjectStorageCapabilityConfigTest.java
|
||||
468 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ProviderBindingTest.java
|
||||
339 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/control/ObjectControlRecordCodecTest.java
|
||||
327 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectMultipartCoordinatorTest.java
|
||||
291 adapter/outbound/objectstorage/src/objectStorageMinioContractTest/java/dev/caskeleton/adapter/outbound/objectstorage/qualification/MinioManagedObjectContractTest.java
|
||||
255 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ManagedObjectProviderTest.java
|
||||
251 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/direct/DirectTransferCoordinatorTest.java
|
||||
247 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/contract/ObjectStorageProviderContract.java
|
||||
197 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ProviderCompositionTest.java
|
||||
196 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/readiness/ObjectStorageReadinessRegistryTest.java
|
||||
179 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3AsyncClientFactoryTest.java
|
||||
178 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/multipart/ManagedMultipartCoordinatorTest.java
|
||||
177 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/codec/ObjectRequestFingerprintCodecTest.java
|
||||
172 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ConditionalObjectControlStoreTest.java
|
||||
167 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/config/ObjectStorageBindingCompilerTest.java
|
||||
165 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3AsyncRequestBodyBridgeTest.java
|
||||
154 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/config/RoutingObjectStorageAdapterTest.java
|
||||
153 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/filesystem/LocalDevObjectStorageRecoveryTest.java
|
||||
151 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ObjectOperationResolverTest.java
|
||||
147 adapter/outbound/objectstorage/src/objectStorageMinioFaultTest/java/dev/caskeleton/adapter/outbound/objectstorage/qualification/MinioManagedObjectFaultTest.java
|
||||
145 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/maintenance/LegacyAdoptionApprovalVerifierTest.java
|
||||
134 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3ManagedMultipartProviderTest.java
|
||||
133 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3AsyncResponseBodyBridgeTest.java
|
||||
130 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectMutationResponseLossTest.java
|
||||
124 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/kernel/ObjectOperationKernelTest.java
|
||||
123 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3DirectTransferProviderTest.java
|
||||
116 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/codec/ObjectNamespaceCodecTest.java
|
||||
115 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/s3/S3SdkApiCharacterizationTest.java
|
||||
109 adapter/outbound/objectstorage/src/test/java/dev/caskeleton/adapter/outbound/objectstorage/maintenance/LegacyObjectAdoptionServiceTest.java
|
||||
exit=0
|
||||
|
||||
=== registry + consumers ===
|
||||
$ python3 -c "
|
||||
import json;d=json.load(open('config/architecture/modules.json'))
|
||||
def f(o):
|
||||
if isinstance(o,dict):
|
||||
if o.get('id','')=='adapter-outbound-objectstorage': return o
|
||||
for v in o.values():
|
||||
r=f(v)
|
||||
if r: return r
|
||||
elif isinstance(o,list):
|
||||
for v in o:
|
||||
r=f(v)
|
||||
if r: return r
|
||||
print(json.dumps(f(d), ensure_ascii=False, indent=2))
|
||||
"
|
||||
{
|
||||
"id": "adapter-outbound-objectstorage",
|
||||
"gradle_path": ":adapter:outbound:objectstorage",
|
||||
"source_path": "src/adapter/outbound/objectstorage",
|
||||
"allowed_dependencies": [
|
||||
"application-core",
|
||||
"shared-contract"
|
||||
],
|
||||
"runtime_memberships": [
|
||||
"sample-portfolio"
|
||||
]
|
||||
}
|
||||
exit=0
|
||||
|
||||
$ git grep -rn ':adapter:outbound:objectstorage' -- . | grep -v "^adapter/outbound/objectstorage/" | head
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/ContractRegistrySchemaGovernanceTest.java:208: "# Semantic owner Gradle path: :adapter:outbound:objectstorage:test",
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/ContractRegistrySchemaGovernanceTest.java:219: .replace("# Semantic owner Gradle path: :adapter:outbound:objectstorage:test\n", "");
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/ContractRegistrySchemaGovernanceTest.java:228: # Semantic owner Gradle path: :adapter:outbound:objectstorage:test
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/ContractRegistrySchemaGovernanceTest.java:326: + "# Semantic owner Gradle path: :adapter:outbound:objectstorage:test\n";
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/RegistryGovernanceCatalog.java:32: "# Semantic owner Gradle path: :adapter:outbound:objectstorage:test");
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/RegistryGovernanceCatalog.java:230: if (!":adapter:outbound:objectstorage:test".equals(definition.ownerGradlePath())
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/RegistryGovernanceCatalog.java:260: ":adapter:outbound:objectstorage:test",
|
||||
config/architecture/modules.json:103: "gradle_path": ":adapter:outbound:objectstorage",
|
||||
sample-portfolio/build.gradle:41: runtimeOnly project(':adapter:outbound:objectstorage')
|
||||
exit=0
|
||||
|
||||
$ git grep -rln 'dev.caskeleton.adapter.outbound.objectstorage' -- . | grep -v "^adapter/outbound/objectstorage/" | head -20
|
||||
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/CaSkeletonApplication.java
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/ContractRegistrySchemaGovernanceTest.java
|
||||
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/contract/RegistryGovernanceCatalog.java
|
||||
exit=0
|
||||
|
||||
$ cat adapter/outbound/objectstorage/build.gradle
|
||||
// Driven adapter: provider-neutral semantic object-storage ports plus a bounded local-development
|
||||
// provider. Canonical app.object-storage activation is disabled by default. The old whole-byte[]
|
||||
// filesystem/S3 adapters remain isolated, explicit legacy compatibility only.
|
||||
//
|
||||
// software.amazon.awssdk:* versions are NOT managed by the Spring Boot BOM, and this repo has no
|
||||
// version catalog, so the AWS SDK v2 BOM platform is imported HERE (module scope) using the root
|
||||
// `ext.awsSdkVersion` SSOT — this keeps the strict-locking blast radius to this module (the shared
|
||||
// root dependencyManagement block stays awssdk-free), mirroring the grpc module's grpc-bom import.
|
||||
description = 'Outbound adapter: object storage (S3/MinIO + local filesystem)'
|
||||
|
||||
|
||||
strictTestLanes {
|
||||
sourceSet('objectStorageMinioContractTest') { compilesAgainst 'main', 'test' }
|
||||
sourceSet('objectStorageMinioFaultTest') { compilesAgainst 'main', 'test' }
|
||||
sourceSet('objectStorageAwsQualificationTest') { compilesAgainst 'main', 'test' }
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom "software.amazon.awssdk:bom:${awsSdkVersion}"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':application-core')
|
||||
implementation project(':shared-contract')
|
||||
|
||||
implementation 'org.springframework.boot:spring-boot-autoconfigure'
|
||||
implementation 'org.slf4j:slf4j-api'
|
||||
implementation 'software.amazon.awssdk:s3'
|
||||
implementation 'software.amazon.awssdk:netty-nio-client'
|
||||
|
||||
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
|
||||
|
||||
// test-only: Testcontainers MinIO integration test for the S3 backend. Uses the core
|
||||
// GenericContainer (no dedicated module) so the S3 round-trip runs against a real MinIO when
|
||||
// Docker is available and is skipped (disabledWithoutDocker) otherwise.
|
||||
testImplementation 'org.testcontainers:testcontainers'
|
||||
testImplementation 'org.testcontainers:testcontainers-junit-jupiter'
|
||||
testImplementation 'org.testcontainers:testcontainers-toxiproxy'
|
||||
testImplementation 'com.tngtech.archunit:archunit-junit5:1.3.0'
|
||||
testImplementation 'net.jqwik:jqwik:1.9.1'
|
||||
}
|
||||
|
||||
def objectStorageReadinessRegistry = rootProject.projectDir.parentFile.toPath()
|
||||
.resolve('docs/registries/object-storage-readiness.yaml').toFile()
|
||||
tasks.named('test') {
|
||||
inputs.file(objectStorageReadinessRegistry)
|
||||
.withPathSensitivity(PathSensitivity.RELATIVE)
|
||||
systemProperty 'objectstorage.readiness.registry', objectStorageReadinessRegistry.absolutePath
|
||||
}
|
||||
|
||||
def objectStorageMinioContractQualification = registerStrictQualificationTest(
|
||||
name: 'objectStorageMinioContractTest',
|
||||
sourceSet: sourceSets.objectStorageMinioContractTest,
|
||||
requiredClasses: [
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.MinioDirectTransferContractTest',
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.MinioManagedObjectContractTest'
|
||||
],
|
||||
description: 'Runs the non-skipping exact-release MinIO managed object contract.')
|
||||
objectStorageMinioContractQualification.configure {
|
||||
shouldRunAfter tasks.named('test')
|
||||
}
|
||||
|
||||
def objectStorageMinioFaultQualification = registerStrictQualificationTest(
|
||||
name: 'objectStorageMinioFaultTest',
|
||||
sourceSet: sourceSets.objectStorageMinioFaultTest,
|
||||
requiredClasses: [
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.MinioDirectTransferFaultTest',
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.MinioManagedObjectFaultTest'
|
||||
],
|
||||
description: 'Runs the non-skipping digest-pinned MinIO/Toxiproxy fault contract.')
|
||||
objectStorageMinioFaultQualification.configure {
|
||||
shouldRunAfter objectStorageMinioContractQualification
|
||||
}
|
||||
|
||||
registerStrictQualificationTest(
|
||||
name: 'objectStorageAwsQualificationTest',
|
||||
sourceSet: sourceSets.objectStorageAwsQualificationTest,
|
||||
requiredClasses: [
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.AwsS3DirectTransferQualificationTest',
|
||||
'dev.caskeleton.adapter.outbound.objectstorage.qualification.AwsS3ManagedCommonSubsetQualificationTest'
|
||||
],
|
||||
description: 'Runs only with explicit protected AWS sandbox authority and exact inputs.')
|
||||
exit=0
|
||||
|
||||
Reference in New Issue
Block a user