@@ -96,21 +96,11 @@ func (d *DatadogJavaagentFramework) Supply() error {
9696 return fmt .Errorf ("failed to install Datadog Javaagent: %w" , err )
9797 }
9898
99- // Find the installed JAR
100- jarPattern := filepath . Join ( datadogDir , "dd-java-agent*. jar" )
101- matches , err := filepath . Glob ( jarPattern )
99+ // constructJarPathAndFixClassCount can be skipped here and do it only in finalize, but it can be left
100+ // as a double check if jar path exists after the dependency install
101+ err = d . constructJarPathAndFixClassCount ( datadogDir )
102102 if err != nil {
103- return fmt .Errorf ("failed to search for Datadog agent JAR: %w" , err )
104- }
105- if len (matches ) == 0 {
106- return fmt .Errorf ("Datadog agent JAR not found after installation in %s" , datadogDir )
107- }
108- d .jarPath = matches [0 ]
109-
110- // Fix class count (critical for Datadog agent)
111- if err := d .fixClassCount (); err != nil {
112- d .context .Log .Warning ("Failed to fix class count: %s" , err )
113- // Continue anyway
103+ return fmt .Errorf ("datadog Java agent JAR path not found during supply: %w" , err )
114104 }
115105
116106 d .context .Log .Info ("Datadog Java agent %s installed" , dep .Version )
@@ -119,8 +109,10 @@ func (d *DatadogJavaagentFramework) Supply() error {
119109
120110// Finalize configures the Datadog Java agent
121111func (d * DatadogJavaagentFramework ) Finalize () error {
122- if d .jarPath == "" {
123- return nil
112+ datadogDir := filepath .Join (d .context .Stager .DepDir (), "datadog_javaagent" )
113+ err := d .constructJarPathAndFixClassCount (datadogDir )
114+ if err != nil {
115+ return fmt .Errorf ("datadog Java agent JAR path not found during finalize: %w" , err )
124116 }
125117
126118 d .context .Log .BeginStep ("Configuring Datadog Java agent" )
@@ -310,3 +302,23 @@ func (d *DatadogJavaagentFramework) getApplicationVersion() string {
310302
311303 return ""
312304}
305+
306+ func (d * DatadogJavaagentFramework ) constructJarPathAndFixClassCount (datadogDir string ) error {
307+ // Find the installed JAR
308+ jarPattern := filepath .Join (datadogDir , "dd-java-agent*.jar" )
309+ matches , err := filepath .Glob (jarPattern )
310+ if err != nil {
311+ return fmt .Errorf ("failed to search for Datadog agent JAR: %w" , err )
312+ }
313+ if len (matches ) == 0 {
314+ return fmt .Errorf ("agent jar not found after installation in %s" , datadogDir )
315+ }
316+ d .jarPath = matches [0 ]
317+
318+ // Fix class count (critical for Datadog agent)
319+ if err := d .fixClassCount (); err != nil {
320+ d .context .Log .Warning ("Failed to fix class count: %s" , err )
321+ // Continue anyway
322+ }
323+ return nil
324+ }
0 commit comments