15
15
from localstack .utils .run import run
16
16
17
17
DDB_AGENT_JAR_URL = f"{ ARTIFACTS_REPO } /raw/388cd73f45bfd3bcf7ad40aa35499093061c7962/dynamodb-local-patch/target/ddb-local-loader-0.1.jar"
18
- DDBLOCAL_ZIP_URL = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_latest.zip"
19
18
JAVASSIST_JAR_URL = f"{ MAVEN_REPO_URL } /org/javassist/javassist/3.30.2-GA/javassist-3.30.2-GA.jar"
20
19
20
+ DDBLOCAL_URL = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_latest.zip"
21
+
21
22
22
23
class DynamoDBLocalPackage (Package ):
23
24
def __init__ (self ):
24
- super ().__init__ (name = "DynamoDBLocal" , default_version = "latest " )
25
+ super ().__init__ (name = "DynamoDBLocal" , default_version = "v2 " )
25
26
26
- def _get_installer (self , _ ) -> PackageInstaller :
27
- return DynamoDBLocalPackageInstaller ()
27
+ def _get_installer (self , version : str ) -> PackageInstaller :
28
+ return DynamoDBLocalPackageInstaller (version )
28
29
29
30
def get_versions (self ) -> List [str ]:
30
- return ["latest " ]
31
+ return ["v2 " ]
31
32
32
33
33
34
class DynamoDBLocalPackageInstaller (PackageInstaller ):
34
- def __init__ (self ):
35
- super ().__init__ ("dynamodb-local" , "latest" )
35
+ def __init__ (self , version : str ):
36
+ super ().__init__ ("dynamodb-local" , version )
36
37
37
- # DDBLocal is compatible with JRE 17+
38
+ # DDBLocal v2 requires JRE 17+
38
39
# See: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html
39
40
self .java_version = "21"
40
41
@@ -45,9 +46,10 @@ def _prepare_installation(self, target: InstallTarget) -> None:
45
46
46
47
def _install (self , target : InstallTarget ):
47
48
# download and extract archive
48
- tmp_archive = os .path .join (config .dirs .cache , "localstack.ddb .zip" )
49
+ tmp_archive = os .path .join (config .dirs .cache , f"DynamoDBLocal. { self . version } .zip" )
49
50
install_dir = self ._get_install_dir (target )
50
- download_and_extract_with_retry (DDBLOCAL_ZIP_URL , tmp_archive , install_dir )
51
+
52
+ download_and_extract_with_retry (DDBLOCAL_URL , tmp_archive , install_dir )
51
53
52
54
# Use custom log formatting
53
55
log4j2_config = """<?xml version="1.0" encoding="UTF-8"?>
0 commit comments