Skip to content

Latest commit

 

History

History
816 lines (409 loc) · 33 KB

File metadata and controls

816 lines (409 loc) · 33 KB

1.30.0 (2026-01-26)

Features

  • Add support for Java 25 (3a78684)
  • Normalize HTTP headers to lower case (597bfd5)

1.29.0 (2026-01-22)

Bug Fixes

  • agent: Append runtime JAR to bootstrap class loader (7f5ee4c)
  • agent: Support running agent on bootstrap classpath (c161259)
  • Close underlying Writers in RecordingSession to prevent resource leaks (4ac35f5)
  • Don't throw when loading logging config fails (7782132)
  • Enforce UTF-8 for AppMap I/O and add encoding regression tests (923aeef)

Features

  • agent: Add option to exclude specific hook classes (412f24d)
  • Enhanced JDBC hooks with PreparedStatement and batch support (d901a68)
  • logging: Improve AppMap agent logging and config output (fb1a4f9)

1.28.1 (2025-11-11)

Bug Fixes

  • Prevent crash when test fails on a different thread (c7525c6)

1.28.0 (2025-03-25)

Bug Fixes

  • More robust handling of LVT when resolving parameters (1f630ff), closes #293

Features

  • Show basic information messages (d71b1a1)

1.27.2 (2025-03-24)

Bug Fixes

  • More robust java metadata matching (102adfa)

1.27.1 (2024-09-02)

Bug Fixes

  • detect packages in multi-project repositories (b60aac6)

1.27.0 (2024-08-27)

Features

  • add config parameter to disable custom stringification (cb18931)

1.26.10 (2024-08-21)

Bug Fixes

  • crash due to config packages key with missing value (ef48399)

1.26.9 (2024-07-05)

Bug Fixes

  • NPE running init when no appmap.yml found (6dcd0d9)

1.26.8 (2024-05-16)

Bug Fixes

  • filename too long in some cases (fc74f0a)

1.26.7 (2024-04-15)

Bug Fixes

  • APPMAP_OUTPUT_DIRECTORY can be set from env (c933c45)
  • resolve output directory relative to config (deb2a84)

1.26.6 (2024-04-10)

Bug Fixes

  • don't create a log file by default (883cd93)

1.26.5 (2024-03-21)

Bug Fixes

  • correct detection of Spark server (571e74b)

1.26.4 (2024-02-16)

Bug Fixes

  • use the correct ClassLoader (9803d25)

1.26.3 (2024-02-02)

Bug Fixes

  • avoid NPE when a Proxy method returns void (fe538f2)
  • don't locate agent jar using a CodeSource (fd1dcd8)

1.26.2 (2024-01-31)

Bug Fixes

  • handle a framework classloader that filters (690d187)
  • skip some JDK packages (0958324)
  • strip annotations when instrumenting (d297955)
  • support class in unnamed package (2667f83)

1.26.1 (2024-01-16)

Bug Fixes

  • add info message when saving AppMap (c7237a1)
  • don't try to add event on test failure (fb64b52)
  • make sure TestNG tests are captured correctly (c44c222)
  • only track packages stats when debugging (d2d3d99)

1.26.0 (2024-01-11)

Bug Fixes

  • add missing hook (5a7dc89)
  • generalize the way test methods are detected (dce4e3d)
  • get rid of reflection in HookConditionSystem (bebeffd)
  • improve agent performance (241d165)
  • only add essential git info (c816cb2)

Features

  • create a log file by default (b86203f)

1.25.3 (2023-12-14)

Bug Fixes

  • make sure getters and setters are ignored (0bc2f8f)

1.25.2 (2023-12-06)

Bug Fixes

  • support JUnit 5 test methods with parameters (1cdd2e9)

1.25.1 (2023-12-06)

Bug Fixes

  • decrease logging about missing classes (87c83c9)

1.25.0 (2023-12-01)

Bug Fixes

  • manage ClassPool instances per-thread (30092a1)

Features

  • record calls made through a Proxy (0873d3d)

1.24.1 (2023-11-21)

Bug Fixes

  • only collect git metadata in a repo (d4ad468)

1.24.0 (2023-11-16)

Bug Fixes

  • really show the config on startup (15f58b6)

Features

  • add Git metadata, improve source paths (62624fd)

1.23.0 (2023-11-02)

Bug Fixes

  • don't use ClassLoader.loadClass (b8cf5ca)

Features

  • add NoAppMap to control test-case recording (b136056)

1.22.3 (2023-10-24)

Bug Fixes

  • go back to hooking org.junit.jupiter.api.Test (f15dc6d)
  • instrumentation should catch Throwable (8b2064d)

1.22.2 (2023-10-12)

Bug Fixes

  • only add the agent jar if it can be located (ca4bc1b)

1.22.1 (2023-10-06)

Bug Fixes

  • set request recording type correctly (b50bc06)

1.22.0 (2023-10-04)

Bug Fixes

  • add the agent jar to the classpath (0e84af4)
  • avoid Gradle class filtering (f3c2f57)
  • avoid NPE for anonymous classes (aa250cd)
  • have safeClassForName require a ClassLoader (f26eabe)
  • make ActiveSession.threadSession static (86be0b7)

Features

  • set test_status, test_failure for JUnit 5 (aee1156)

1.21.0 (2023-09-12)

Features

  • make tmp/appmap the default output directory (50581e8)

1.20.3 (2023-09-06)

Bug Fixes

  • handle unset appmap.output.directory (c9d1a39)

1.20.2 (2023-09-02)

Bug Fixes

  • don't read the servlet's InputStream (f44e4d7)
  • enable remote recording appropriately (ab326f7)
  • only add ServletListener once (bfe1bd8)

1.20.1 (2023-08-22)

Bug Fixes

  • don't generate AppMaps for static resources (8cc322c)

1.20.0 (2023-08-18)

Bug Fixes

  • only add servlet listener when appropriate (b0aab08)
  • use current thread's class loader (691edf7)

Features

  • add support for appmap_dir (2e0f4c7)

1.19.0 (2023-08-07)

Bug Fixes

  • CtClassUtil.isChildOf checks all interfaces (2b30bbf)
  • ignore abstract methods when instrumenting (ab7de0a)
  • make sure events are flushed correctly (e876ab5)
  • print the path to the config on startup (e37df71)
  • set the name of a remote recording (bc2e8a8)

Features

  • add support for Spark Framework (051ccca)
  • use a filter to manage remote recording (b955ac8)

1.18.1 (2023-07-03)

Bug Fixes

  • don't depend on spring-web (ad75e17)

1.18.0 (2023-06-30)

Bug Fixes

  • add tinylog for logging (fe1a05a)
  • update ClassFileTransformer.transform (cc673ef)

Features

1.17.2 (2023-05-09)

Bug Fixes

  • hook other HttpClient.execute overloads (f8d3533)

1.17.1 (2023-04-26)

Bug Fixes

  • don't set "shallow: true" by default (f61a19d)
  • set attributes of http_client_request (3f14082)

1.17.0 (2023-04-18)

Features

  • hook Apache's HttpClient (25201d7)

1.16.0 (2023-03-18)

Features

  • generate a default config (9ff949b)

1.15.7 (2023-03-03)

Bug Fixes

  • don't crash on unnamed package (4fc4dab)

1.15.6 (2023-02-09)

Bug Fixes

  • Don't print exception when copying across filesystems fails (57ce08f)

1.15.5 (2023-01-04)

Bug Fixes

  • eliminate possibility of NPE (cf13c4b)

1.15.4 (2022-11-30)

Bug Fixes

  • improve naming of output directory (660b506)

1.15.3 (2022-11-25)

Bug Fixes

  • handle parameterized requests correctly (c54769e)

1.15.2 (2022-11-18)

Bug Fixes

  • avoid a javassist issue (7c39c28)

1.15.1 (2022-06-07)

Bug Fixes

  • Record normalized_path for Spring requests (f6a9ee6)

1.15.0 (2022-06-07)

Features

  • Allow appmap_dir, language, and add'l (a94ea0b)

1.14.1 (2022-05-11)

Bug Fixes

  • Handle missing package names (4270ab5)

1.14.0 (2022-05-10)

Features

  • Configurable method labels (2deb582)

1.13.1 (2022-04-27)

Bug Fixes

  • Ignore extra properties in appmap.yml (95db306)

1.13.0 (2022-04-26)

Features

1.12.3 (2022-04-26)

Bug Fixes

  • Only show whereAmI when debugging (f09468b)
  • Order source method hooks correctly (578f45d)

1.12.2 (2022-04-19)

Bug Fixes

  • Don't call mocked java.sql methods (0ba3563)

1.12.1 (2022-04-12)

Bug Fixes

  • Move Labels into separate artifact (3527e65)

1.12.0 (2022-03-13)

Bug Fixes

  • Eliminate whereAmI at agent startup (0396572)

Features

1.11.0 (2022-02-28)

Bug Fixes

  • Allow hook application to be ordered (d111e0a)

Features

  • http_server_requests for Http Core servers (0b2d09c)

1.10.0 (2022-02-16)

Features

  • Add support for Http Core (baa0ba6)

1.9.0 (2022-01-18)

Features

  • Record non-public methods (28a8fe9)

1.8.1 (2021-12-13)

Bug Fixes

  • Fix path and exclude item regexp (18c028f)

1.8.0 (2021-12-13)

Features

  • Record HTTP server request and response headers (009358a)

1.7.0 (2021-10-26)

Features

  • Update output from validate command (318deab)

1.6.1 (2021-10-03)

Bug Fixes

  • Avoid ConcurrentModificationException (c6d1b7b)

1.6.0 (2021-09-13)

Bug Fixes

  • Abort if no config found (cd57f2f)

Features

  • Look for config in parent directories (1be744b)

1.5.0 (2021-08-30)

Features

  • Add validate subcommand to the CLI (a0650b0)

1.4.1 (2021-08-14)

Bug Fixes

  • Guard NPE when checking the shallow flag on a package (ff5c418)
  • Retry move as copy when the file is locked (91ea858)

1.4.0 (2021-08-09)

Bug Fixes

  • Memoize package name (0a74b37)
  • Record to designated output directory (5787108)

Features

1.3.0 (2021-08-02)

Bug Fixes

  • Improve robustness and logging of parent interface and superclass access (a24f056)
  • Keep events 'open' until the next event is received (9e12099)
  • Remove '-f' option to 'wait' (637f904)

Features

  • Add session recording checkpoint (04d9293)
  • Apply different fields to call, return, sql, etc (3d8db1f), closes #50 #44
  • appmap.debug enables additional debug info (67e935e)
  • Expand and modularize the integration test suite (ad06488)
  • Record return event parent_id (40be795)
  • Write source location and test status metadata (397e200)

1.2.0 (2021-07-26)

Bug Fixes

  • Fix some path bugs and get the tests working (ec32e23)
  • Remove unused class RecordServlet (1bd39de)

Features

  • 'init' command suggests appmap.yml with project name and packages (299bb70)
  • 'status' command reports project properties (cb4693d)
  • 'status' command reports test commands (058ae0e)
  • Add stub for agent 'init' command (55d9fc8)
  • Add stub for agent 'status' command (7f5fd02)
  • Helper commands can direct output to a file (bf1c699), closes #89

1.1.0 (2021-05-13)

Features

  • Add a property to enable automatic recording at boot time (7c83614)

1.0.4 (2021-04-08)

Bug Fixes

  • Don't append System path to class pools (681d74e)
  • Provide better error message when encountering an unknown event (c69a877)

1.0.3 (2021-03-22)

Bug Fixes

  • Allow classes compiled without locals to be hooked (0e0a0d3)
  • Capture exceptions thrown from SQL interfaces (9d1e66f)

1.0.2 (2021-03-18)

Bug Fixes

  • improve path and package resolution (#62) (c3ba3df)

1.0.1 (2021-03-17)

Bug Fixes

1.0.0 (2021-03-17)

Features

  • AppMap Maven plugin (#46) (1798df2)
  • appmap.yml errors are logged to stderr (e746253)

0.5.1 (2021-03-09)

Added

  • System.err logs on configuration failures.

0.5.0 (2020-11-04)

Added

  • Support for capturing http_client_request and http_client_response events for Java 8 applications.

0.4.3 (2020-10-08)

Fixed

  • ReflectiveType.invoke now makes the method accessible before trying to invoke it.

0.4.2 (2020-10-06 (yanked))

Added

  • The new system property appmap.debug.http to show some debugging when handling requests for /_appmap/record.

Changed

  • Cleaned up reflection in HttpServletRequest, HttpServletResponse, and FilterChain.

0.4.1 (2020-08-25)

Added

  • The new system property appmap.record can be used to specify a method to record.
  • The system property appmap.debug.file. When set, debug output will be written to the specified file, instead of to System.err.

Changed

  • appmap-java now uses significantly less memory when recording.

0.4.0 (2020-08-06)

Added

  • Tests annotated with org.testng.annotations.Test are now recorded.

0.3.2 (2020-07-30)

Fixed

  • Added callback handlers with METHOD_EXCEPTION method event to close recording of current session for Junit and Jupiter Tests.

0.3.1 (2020-07-15)

Fixed

  • Dependencies of appmap-java which use slf4j will now use a nop implementation in order to stop them from logging if the client application provides it's own implementation. If left up to the client application, appmap-java can interfere with test frameworks by corrupting stdout.
  • appmap-java will no longer call Thread methods that may be extended by the client application resulting in a stack overflow.
  • appmap-java no longer assumes that Thread identifiers are unique. Previously, this could result in concurrent modificiations to resources not meant to be shared across threads.

0.3.0 (2020-07-08)

Fixed

  • Removed a potential deadlock that could occur if the user's code required a lock in toString.
  • Output directories will be recursively created

Added

  • appmap.event.valueSize can be used to specify the length of a value string before truncation occurs.
  • Recorder.record will record and output the execution of a Runnable.

Changed

  • In appmap.yml a package item can now have an empty path, allowing the user to specify a list of exclusions only. This can be useful for excluding groups of tests not meant to be captured.
  • The default output directory for appmap files is now ./tmp/appmap. This directory will be created automatically if it does not exist.

0.2.1 (2020-07-01)

Fixed

  • appmap.output.directory will be created if it does not exist. Previously this resulted in a null pointer exception when recording.
  • Parsing errors in appmap.yml will stop the application from running and emit a useful error.

0.2.0 (2020-06-29)

Added

  • Support for Jakarta

Removed

  • javax.servlet dependency

Changed

  • All logging is disabled by default. To enable logging use the appmap.debug system property.
  • Loading times have been reduced significantly.

0.1.0 (2020-06-05)

Added

  • Name property added to appmap metadata
  • HTTP request parameters are captured
  • Spring path params are captured
  • Spring normalized path info is captured
  • Support for JUnit Jupiter

Fixed

  • Feature group metadata is now written to the correct key

0.0.2 (2020-05-15)

Added

  • language object in metadata now includes version and engine based on the Java runtime.
  • sql_query events now include database_type as reported by the database driver.

0.0.1 (2020-04-28)

Added

  • Versioning has begun. The authoritative version is now declared in build.gradle.
  • Feature and feature group metadata fields are now written to scenarios captured from test cases.