77package datadog .instrument .glue ;
88
99import static java .nio .charset .StandardCharsets .UTF_16BE ;
10+ import static java .util .Objects .requireNonNull ;
1011
1112import datadog .instrument .utils .JVM ;
12- import java .io .ByteArrayOutputStream ;
1313import java .io .InputStream ;
1414import java .util .MissingResourceException ;
15- import java .util .Objects ;
1615
1716/** Methods for loading instrumentation glue bytecode from string literals and resource files. */
1817public final class Glue {
19-
2018 private static final String GLUE_RESOURCE_PREFIX = "/datadog/instrument/glue/" ;
2119
2220 private static final int BUFFER_SIZE = 8192 ;
@@ -41,22 +39,10 @@ public static byte[] unpackBytecode(String bytecode) {
4139 * @return the glue bytecode
4240 * @throws MissingResourceException if the bytecode cannot be read
4341 */
44- @ SuppressWarnings ({"Since15" })
4542 public static byte [] loadBytecode (Class <?> host , String glueName ) {
4643 String glueResource = GLUE_RESOURCE_PREFIX + glueName ;
47- try (InputStream is = Objects .requireNonNull (host .getResourceAsStream (glueResource ))) {
48- if (JVM .atLeastJava (9 )) {
49- return is .readAllBytes ();
50- } else {
51- try (ByteArrayOutputStream os = new ByteArrayOutputStream ()) {
52- int bytesRead ;
53- byte [] buf = new byte [BUFFER_SIZE ];
54- while ((bytesRead = is .read (buf , 0 , BUFFER_SIZE )) != -1 ) {
55- os .write (buf , 0 , bytesRead );
56- }
57- return os .toByteArray ();
58- }
59- }
44+ try (InputStream is = requireNonNull (host .getResourceAsStream (glueResource ))) {
45+ return JVM .readAllBytes (is );
6046 } catch (Throwable e ) {
6147 String detail = "Cannot load " + glueResource + " from " + host + ": " + e ;
6248 throw new MissingResourceException (detail , host .getName (), glueResource );
0 commit comments