jdaugherty commented on PR #16631:
URL: https://github.com/apache/grails-core/pull/16631#issuecomment-6429631970

   @jamesfredley, review 5660053162 is addressed, and the head is now 
6b133f1c64. The feature commit was rebased onto 9.0.x (9549579958) unchanged as 
b7ff57e508, and two commits follow it:
   
   **6b133f1c64: default action.** A request to `/book` keeps its `before` 
interceptor's statements on `book/index`; see the reply in the thread.
   
   **bc9f326645: hardening.**
   - **MongoDB restore**: a client that is not a `RestartableMongoClient` used 
to leak the capture of its replacement's listener after a CRaC restore, and 
recorded with no mapping bound. Now the replacement's listener takes the place 
of the closed client's, which is closed, and keeps its mapped fields. A 
connection source of another kind closes it at once. `createMongoClient` closes 
the capture nothing could own.
   - **Unwritable capture file**: the file, or its directory, cannot be 
created. This used to stop Hibernate, MongoDB and embedded Neo4j from starting. 
Now it is logged as a warning, and the capture records nothing. The Neo4j 
driver and embedded-server cleanup that existed only for that failure is gone.
   - **Relative `grails.gorm.queryTail.file`**: now joined to `base.dir` when 
it is set, as the default file and the command already were, so an application 
run from another working directory writes where `grails query-tail` reads.
   - **Test runs**: the Gradle plugin tells every test JVM the build's run, not 
only when query-tail settings are Gradle properties, so capture enabled for the 
test environment in `application.yml` adds up to one run. A run given as 
`-Pgrails.gorm.queryTail.run` is passed as it is.
   - **Extensions**: the extension of a last segment kept by its name is now 
recorded as `?`, e.g. `/book/show.json` → `/book/show.?`, since a client 
chooses it as it chooses a format.
   - **MongoDB stored data**: unmapped keys at the top of stored data (inserted 
documents, replacement documents, the fields an update writes, and the operands 
of `$literal`, `$const` and `$documents`) are now `?`, as a dynamic attribute's 
name may be data. Condition, pipeline, sort and projection keys are still kept.
   - **Mapped fields**: the entities of each collection are gathered again only 
when the mapping context reports a new entity, instead of a queue walk per key.
   - **Neo4j**: a `Driver` handed to the datastore is captured. Its settings 
are now bound with `grails.gorm` fallbacks, as a driver GORM builds already was.
   - **Locking**: `isOpen()` no longer takes the write lock. Opening a file 
waits on another JVM's starting writer under a per-file lock, not the one every 
open and close in the JVM takes.
   - **Thread work**: `query-tail` lists threads after the pages of requests, 
with `-` for requests and averages, and no longer counts them as requests, so 
`BootStrap` or a test worker cannot top the ranking.
   - **API cleanup**: removed the test-only `QueryTailSettings.from(...)`, 
`QueryTailCapture.open(QueryTailSettings)` and `recordRedacted(String, 
String)`. The Hibernate 5 and 7 inspectors now share `QueryTailRecorder` for 
the capture lifecycle.
   
   The guide and the command reference are updated to match.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to