@@ -209,19 +209,45 @@ def stop_sentry_mock_server(self) -> None:
209209 os .remove (self .mock_server_pid_file )
210210 self .mock_server_pid = None
211211
212+ def read_version_from_gradle_properties (self ) -> Optional [str ]:
213+ """Read the versionName from gradle.properties."""
214+ try :
215+ with open ("gradle.properties" , "r" ) as f :
216+ for line in f :
217+ line = line .strip ()
218+ if line .startswith ("versionName=" ):
219+ return line .split ("=" , 1 )[1 ]
220+ except (IOError , IndexError ) as e :
221+ print (f"Error reading version from gradle.properties: { e } " )
222+ return None
223+
212224 def find_agent_jar (self ) -> Optional [str ]:
213- """Find the OpenTelemetry agent JAR file."""
225+ """Find the OpenTelemetry agent JAR file with the specific version from gradle.properties ."""
214226 agent_dir = Path ("sentry-opentelemetry/sentry-opentelemetry-agent/build/libs/" )
215227 if not agent_dir .exists ():
216228 return None
217229
218- for jar_file in agent_dir .glob ("*.jar" ):
230+ # Get the version from gradle.properties
231+ version = self .read_version_from_gradle_properties ()
232+ if not version :
233+ print ("Error: Could not read version from gradle.properties" )
234+ return None
235+
236+ # Look for the specific versioned JAR
237+ versioned_jar_pattern = f"*agent*{ version } *.jar"
238+ for jar_file in agent_dir .glob (versioned_jar_pattern ):
219239 name = jar_file .name
220- if ("agent" in name and
221- "javadoc" not in name and
240+ if ("javadoc" not in name and
222241 "sources" not in name and
223242 "dontuse" not in name ):
243+ print (f"Found versioned agent JAR: { jar_file } " )
224244 return str (jar_file )
245+
246+ # If versioned JAR not found, print helpful message
247+ print (f"Error: Could not find agent JAR with version { version } in { agent_dir } " )
248+ print ("Available JAR files:" )
249+ for jar_file in agent_dir .glob ("*.jar" ):
250+ print (f" { jar_file .name } " )
225251 return None
226252
227253 def build_agent_jar (self ) -> int :
0 commit comments