Repository: bensadeh/tailspin
Branch: main
Commit: 99766a74b0a2
Files: 84
Total size: 530.9 KB
Directory structure:
gitextract_xxj4fyy4/
├── .envrc
├── .gitattributes
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ ├── BuildAndTest.yml
│ ├── Publish.yml
│ └── ReleaseStaticBinaries.yml
├── .gitignore
├── CHANGELOG.md
├── Cargo.toml
├── LICENCE
├── README.md
├── benches/
│ ├── highlighters.rs
│ └── no_match.rs
├── completions/
│ ├── tspin.bash
│ ├── tspin.fish
│ └── tspin.zsh
├── config.toml
├── example-logs/
│ ├── example1
│ ├── example2
│ ├── example3
│ ├── example4
│ └── example5
├── flake.nix
├── man/
│ └── tspin.1
├── rust-toolchain.toml
├── rustfmt.toml
├── src/
│ ├── cli/
│ │ ├── completions.rs
│ │ ├── keywords.rs
│ │ ├── mod.rs
│ │ └── styles.rs
│ ├── config/
│ │ └── mod.rs
│ ├── core/
│ │ ├── config.rs
│ │ ├── highlighter.rs
│ │ ├── highlighters/
│ │ │ ├── date_dash.rs
│ │ │ ├── date_time.rs
│ │ │ ├── ip_v4.rs
│ │ │ ├── ip_v6.rs
│ │ │ ├── json.rs
│ │ │ ├── key_value.rs
│ │ │ ├── keyword.rs
│ │ │ ├── mod.rs
│ │ │ ├── number.rs
│ │ │ ├── pointer.rs
│ │ │ ├── quote.rs
│ │ │ ├── regex.rs
│ │ │ ├── unix_path.rs
│ │ │ ├── unix_process.rs
│ │ │ ├── url.rs
│ │ │ └── uuid.rs
│ │ ├── mod.rs
│ │ ├── style.rs
│ │ ├── tests/
│ │ │ └── escape_code_converter.rs
│ │ └── utils/
│ │ ├── mod.rs
│ │ ├── normalizer.rs
│ │ └── split_and_apply.rs
│ ├── highlighter_builder/
│ │ ├── builtins.rs
│ │ ├── groups.rs
│ │ └── mod.rs
│ ├── io/
│ │ ├── controller/
│ │ │ └── mod.rs
│ │ ├── initial_read.rs
│ │ ├── mod.rs
│ │ ├── presenter/
│ │ │ ├── mod.rs
│ │ │ ├── pager.rs
│ │ │ └── stdout.rs
│ │ ├── reader/
│ │ │ ├── buffer_line_counter.rs
│ │ │ ├── command.rs
│ │ │ ├── file_reader.rs
│ │ │ ├── mod.rs
│ │ │ └── stdin.rs
│ │ └── writer/
│ │ ├── mod.rs
│ │ ├── stdout.rs
│ │ └── temp_file.rs
│ ├── lib.rs
│ ├── main.rs
│ └── theme/
│ ├── mappers.rs
│ ├── mod.rs
│ └── reader.rs
├── tests/
│ ├── files/
│ │ └── empty.log
│ ├── integration_tests.rs
│ └── utils.rs
└── util/
├── generate_all.sh
├── generate_man_pages.sh
├── generate_shell_completions.sh
└── tspin.adoc
================================================
FILE CONTENTS
================================================
================================================
FILE: .envrc
================================================
use flake
================================================
FILE: .gitattributes
================================================
*.1 linguist-vendored
*.sh linguist-vendored
*.zsh linguist-vendored
*.bash linguist-vendored
*.fish linguist-vendored
*.adoc linguist-vendored
*.nix linguist-vendored
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: cargo
directory: /
schedule:
interval: weekly
groups:
dependencies:
patterns:
- "*"
================================================
FILE: .github/workflows/BuildAndTest.yml
================================================
name: Run Tests
on: [ push, pull_request ]
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
name: Build and Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Build and test
run: |
cargo build --verbose
cargo test --verbose
cargo clippy --verbose
- name: Check Cargo.lock
run: |
git diff --exit-code -- Cargo.lock
if [ $? -ne 0 ]; then
echo "Cargo.lock was modified. Please commit the changes."
exit 1
fi
================================================
FILE: .github/workflows/Publish.yml
================================================
name: Publish
on:
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
token: ${{secrets.GH_PAT}}
fetch-depth: 0
- name: Build and Test
run: |
cargo build --verbose
cargo test --verbose
- name: Check Cargo.lock
run: |
git diff --exit-code -- Cargo.lock
if [ $? -ne 0 ]; then
echo "Cargo.lock was modified. Please commit the changes."
exit 1
fi
- name: Publish to crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
run: |
cargo login $CARGO_REGISTRY_TOKEN
cargo publish
- name: Get release notes
id: release_notes
run: |
TAG_NAME=${{ github.ref_name }}
RELEASE_NOTES=$(awk '/'"^## $TAG_NAME"'/{flag=1;next}/##/{flag=0}flag' CHANGELOG.md)
RELEASE_NOTES="${RELEASE_NOTES//'%'/'%25'}"
RELEASE_NOTES="${RELEASE_NOTES//$'\n'/'%0A'}"
RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}"
echo "::set-output name=notes::$RELEASE_NOTES"
- name: Create GitHub Release
uses: ncipollo/release-action@v1
with:
artifacts: "none"
token: ${{ secrets.GH_PAT }}
tag: ${{ github.ref }}
name: ${{ github.ref_name }}
body: ${{ steps.release_notes.outputs.notes }}
- name: Bump minor version and update CHANGELOG
run: |
BRANCH_NAME="main"
# Fetch the branch
git fetch origin $BRANCH_NAME
# Switch to the branch that triggered the workflow
git checkout "$BRANCH_NAME"
# Bump minor version and reset patch version in Cargo.toml
VERSION_LINE=$(grep "^version" ./Cargo.toml | head -1)
VERSION=$(echo $VERSION_LINE | grep -oP '\d+\.\d+\.\d+')
MAJOR_VERSION=$(echo $VERSION | awk -F'.' '{print $1}')
MINOR_VERSION=$(echo $VERSION | awk -F'.' '{print $2}')
BUMPED_MINOR_VERSION=$((MINOR_VERSION + 1))
BUMPED_VERSION="$MAJOR_VERSION.$BUMPED_MINOR_VERSION.0"
BUMPED_VERSION_LINE=$(echo $VERSION_LINE | sed "s/$VERSION/$BUMPED_VERSION/")
sed -i "s/$VERSION_LINE/$BUMPED_VERSION_LINE/" ./Cargo.toml
# Update cargo.lock
cargo build
# Add new entry to CHANGELOG.md
NEW_CHANGELOG_ENTRY="## $BUMPED_VERSION\n\n"
sed -i "/^# Changelog/a\\
$NEW_CHANGELOG_ENTRY\\
" CHANGELOG.md
# Commit and push changes
git config user.name '${{ github.actor }}'
git config user.email '${{ github.actor }}@users.noreply.github.com'
git add .
git commit -m "Bump version and update CHANGELOG"
git push
================================================
FILE: .github/workflows/ReleaseStaticBinaries.yml
================================================
name: Release static binaries
on:
release:
types: [published]
permissions:
contents: write
jobs:
release-binaries:
name: Release ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
steps:
- uses: actions/checkout@v3
- uses: taiki-e/upload-rust-binary-action@v1
with:
bin: tspin
target: ${{ matrix.target }}
archive: tailspin-$target
token: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .gitignore
================================================
# Generated by Cargo
# will have compiled files and executables
debug/
target/
# These are backup files generated by rustfmt
**/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
.direnv/
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## Unreleased
### Added
- Highlight `HEAD`, `CONNECT`, and `OPTIONS` HTTP methods by
default ([#261](https://github.com/bensadeh/tailspin/pull/261), thanks @g0l4!)
- Add builtin keyword highlighting for `undefined`, `NULL`, `nil`, `NIL`, `NaN`, `FALSE`, and `TRUE`
- File truncation detection in follow mode
- Support for parentheses in URL paths (e.g. Wikipedia-style URLs) with balanced parenthesis detection
- Clear error message for `--exec` on Windows instead of a generic
failure ([#232](https://github.com/bensadeh/tailspin/issues/232))
### Fixed
- Fix zombie processes when using `--exec` by properly waiting on the child process after it exits
- Surface the actual error when the stream processor fails during initial read, instead of a generic channel-receive
error
- Gracefully handle broken pipe (e.g. `tspin | head`) instead of panicking
- `--follow` not working on certain filesystems (NFS, FUSE, Docker bind mounts, etc.) by replacing `linemux` with a
polling-based file reader ([#240](https://github.com/bensadeh/tailspin/issues/240))
- Crash when reading files with non-UTF-8 content ([#31](https://github.com/bensadeh/tailspin/issues/31))
- URLs wrapped in parentheses or single quotes incorrectly including surrounding delimiters in the highlight
- Files with symlinks in their path could not be opened
consistently ([#244](https://github.com/bensadeh/tailspin/issues/244), [#134](https://github.com/bensadeh/tailspin/issues/134))
- Quoted regions now highlight correctly while preserving inner
highlights ([#171](https://github.com/bensadeh/tailspin/issues/171))
### Crate
- Differentiate between Regexp Errors and Aho-Corasick Errors
- Feature-gate CLI dependencies (`tokio`, `clap`, `rayon`, etc.) so library consumers can use
`default-features = false` to avoid compiling them
### Changed
- Builtin keyword highlighting of `true` changed from red to green
### Performance
- Use SIMD-accelerated `memchr` for newline detection in buffered reader
- Cache ANSI escape sequence finders using `LazyLock` statics instead of recreating per call
- Reduced string allocations across highlighters by replacing `format!()` with `write!()`, eliminating per-match
allocations, and increasing pre-allocation buffers
### Build
- Enable LTO, single codegen unit, and `strip = true` for release builds
- Trimmed and modernized dependencies: replaced `async-trait` with native async traits, `miette` with `anyhow`,
`ctrlc` with tokio signals; removed `uuid`
## 5.5.0
- Fixed a bug where the IPv6 highlighter would swallow parts of a matched, but invalid IPv6 address
- Improved Unix path regex to include more valid paths
- Use aho-corasick for keyword highlighting for better performance
- Disabled Unicode support in builtin regexes for better performance
- Updated default colors for the JSON highlighter
## 5.4.5
- Fixed a bug where newlines were filtered away when reading from stdin
## 5.4.4
- Add support for custom pager command in windows
- Fixed a bug where custom pager command would incorrectly take precedence over the presenter mode
## 5.4.3
- Prioritize custom regex patterns over other highlighters
- IPv4 highlighter now only highlights valid IPv4 addresses
## 5.4.2
- Fixed a bug where the `--follow` would prevent the pager from starting
## 5.4.1
- Add support for both `--print` and `--follow` flags
- Fixed a bug where EOF signal would not be set causing `tailspin` to pick up newline entries after program has been run
## 5.4.0
- Use `UUID` as temp file suffix instead of number
- Added colors to the help screen
- Merge all the `--words-red`, `--words-green`, etc. flags into a single `--highlight [COLOR]:[WORDS]` flag
- Renamed `--no-builtin-keywords` to `--disable-builtin-keywords`
- Added a `--pager` flag to override the default pager in addition to the env variable
- Fixed a bug where `--listen-command` would never run the pager
- Renamed `--listen-command` to `--exec`
## 5.3.0
- Enabled parallel processing of lines from `stdin`
- Fixed a bug where large log file would open before highlighting had been applied
## 5.2.1
- Use `stdin().is_terminal()` instead of `nix` crate to check if `stdin` is a terminal
## 5.2.0
### CLI
- Give a warning if user is trying to read from file while also piping to `stdin`
- Extract End Of File (EOF) signaling logic
- Fixed a bug where io errors would silently be ignored
### Crate
- Better grouping of submodules
- Add rustdoc to all public types
- Simplify error handling by only returning the first regexp error
## 5.1.0
- Merged the `inlet_manifold` crate back into `tailspin` (`tailspin` is now the name of both the cli and the crate)
- Changed the `apply` trait to return `Cow<'a, str>` instead of `String`
- Removed the `start-at-end` flag
## 5.0.0
This is a relatively small update with one breaking change, namely the removal of the ability to watch folders. It's
never fun to remove features from `tailspin` that users enjoy and use, however as the tool grows, it has become more
important for me to focus on the core functionality of `tailspin` which is highlighting.
I hope that I've made `tailspin` modular and extensible so that user are able to script and extend `tailspin` to
alleviate this change.
On a lighter note, I've added support for custom pagers. This means that you can now use `tailspin` with your favorite
pager, for example `ov` or `minus`.
### New features:
- Added support for using custom pagers
### Bugfixes:
- Fixed a bug in the config parser where it would fall back on looking for the theme in `~/tailspin/theme.toml`
instead of `~/.config/tailspin/theme.toml` if `XDG_CONFIG_HOME` is unset
- Fixed a bug where `tailspin` would crash reading files with one line
### Under the hood:
- Use `PathBuf` instead of String for file paths
- Updated shell completion commands names
- Added `miette` for prettier error messages
- Removed unnecessary use of `Box`
- Bump Rust edition to 2024
### Breaking changes:
- Removed support for watching folders
## 4.0.0
### Overview
This release contains several new feature and breaking changes. From a user perspective, the most notable change is the
addition of a `JSON` highlighter. From a developer's perspective, the highlighting engine powering `tailspin` has been
decoupled and extracted into a separate library called [`manifold`](https://github.com/bensadeh/manifold).
`manifold` will still be used internally by `tailspin`, but it will also be available as a standalone library for other
projects to use.
### New features:
- Added support for handling lines which are valid `JSON`. `tailspin` will recognize if the line is a valid JSON object
and highlight it accordingly.
- Added date and time highlighter for formats like `DD/MM/YYYY`
### Breaking changes:
- `tailspin` will now look for `theme.toml` instead of `config.toml` for the configuration file
- Enabling and disabling highlight groups is now done from the command line instead of in the toml file
- Removed the `border` from the style from the keyword styling. Instead, the border will be enabled implicitly by
setting a background color for the keyword.
- Removed date highlighting for formats like `Aug 14` and `Sun Dec 14` etc. (Can be re-enabled by adding a custom
regex highlighter)
- One highlighting group for both date and time
## 3.0.2
- Add completion hint so shells understand they can complete with file names (Thanks @alerque !)
## 3.0.1
- Improve parsing of very large log files
## 3.0.0
### Overview
In November 2023, `tailspin` had 240 stars and was only available to downloads on Crates.io and Debian. At the time of
writing this, it sits at over 4k stars and is available on most major Linux distributions, macOS and Windows.
I am glad to see that `tailspin` has been useful to so many people.
For version `3.0.0` there are both new features and breaking changes.
### New features:
- `UUID` highlighter now highlights numbers and letters in individual styling
- Process highlighter has updated default styling and matches processes with parenthesis
- Added a new highlighter 32-bit and 64-bit pointers (e.g. `0x7f8c8c0c0c0c`)
- Added a `IPv6` highlighter (e.g. `2001:0db8:85a3:0000:0000:8a2e:0370:7334`)
- Dates formatted as `yyyy/mm/dd` and `Day Month DD` are now highlighted
### Breaking changes:
##### Renamed `--follow-command` to `--listen-command`
The `--follow-command` flag has been renamed to `--listen-command` to avoid confusion with the `--tail` flag.
##### Removed `--bucket-size` flag
The `--bucket-size` flag has been removed. The bucket size was ultimately an implementation detail that should be set
by the program itself.
##### Removed `shorten-to` flag option for dates and times
The `shorten-to` option for dates and times has been removed. The option, set in `config.toml`, let the user shorten the
date and time to a configurable token.
In order to keep up with the growth of `tailspin`, I've decided to focus on the core of what `tailspin` is doing, namely
highlighting. This meant that I had to remove some features that were not directly related to highlighting.
Apologizes for removing this feature and to those who are using it.
## 2.4.0
- Added a regexp highlighter with support for one capture group
- Changed the behavior of processing lines from `stdin` to be sequential for better stability
## 2.3.0
- `tailspin` now uses multiple threads to process lines in parallel
- Added `--bucket-size` flag to configure the number of lines to process in parallel
- Changed `-t,--tail` flag to `-e,--start-at-end` to avoid confusion with `tail -f`
## 2.2.0
- Added flags for setting simple highlights on the fly, for example: (`tspin --words-red popcorn,movie`)
- Properly flatten and merge keywords to improve regex performance
- Binaries are now added to the GitHub Release (Thanks @ecarrara and @supleed2)
- Added `HEAD` HTTP method to the REST keywords (Thanks @mkogan1)
- Fixed a bug where the message `Failed to open file with less: Exit code 0` would show after exiting `less`
## 2.1.0
- Fixed a bug where opening empty files would hang forever
- Look for config file in `USERPROFILE` and `$HOME` instead of just `$HOME`
- Added flags for disabling builtin keywords
- Process names with dashes are now highlighted properly
- Better error messages when `less` is not found
## 2.0.0
- Changed the binary name from `spin` to `tspin`
This is a symbolic release to settle on a new binary name with fewer conflicts. Both `tailspin` and `spin` already exist
as binaries in different systems and distributions. `tspin` is a short and unique name that is unlikely to conflict with
other binaries.
## 1.6.1
- Fixed a bug where the `--print` flag would occasionally cause a panic
## 1.6.0
- Added new highlight group under Keywords highlighter: HTTP methods
- Added option for adding a border to keywords highlighter
- Disable highlights with `disable` for all highlight groups except Keywords
- Simplified the configuration file format
- Date and time can be configured to be hidden
## 1.5.1
- Update man pages
## 1.5.0 - 16.09.23
- Errors are now printed to `stderr` instead of `stdout`
- Date highlighter now supports different highlights for date and time segment
- Added Key Value highlighter
- Added unix process highlighter
## 1.4.0 - 12.08.23
- Added `-t`/`--tail` flag to start reading from the end of a file.
- Fixed a bug where opening a folder would include hidden files
- Improved initial output when watching folders
- Improved output when trying to open a file or folder which doesn't exist
## 1.3.0 - 31.07.23
- Added support for tailing folders
- Changed behavior: `tailspin` will now print to `stdout` by default if used in a pipe. For
example: `echo "hello null" | spin`
will output a syntax highlighted "hello null" directly to `stdout` instead of via the pager less. The change will make
it easier to use tailspin in scripting and piping.
- The `--tail-command` flag has been renamed to `--follow-command`
## 1.2.1 - 26.07.23
- Run `less` with environment variable `LESSSECURE=1`
## 1.2.0 - 26.07.23
- Added a `--tail-command` flag to allow for continuous tailing the output of a specified command
- Added a `-p` / `--print` flag to print the output directly to `stdout`
- Added `man` pages
- Added shell completions for `bash`, `zsh` and `fish`
## 1.1.0 - 24.07.23
**Core**
- `less` now starts with the `--ignore-case` and `--RAW-CONTROL-CHARS` flags
- Added support for reading from `stdin`
- Added a `--version` flag
## 1.0.0 - 11.07.23
**Core**
- `tailspin` has been rewritten in Rust
**Theming**
- All highlight groups are now customizable
## 0.1.1 - 27.02.23
**Bugfixes**
- Fixed a bug that would occasionally lead to temp files not being cleaned up
**Dependencies**
- Bump Go from 1.19 to 1.20
- Bump bubbletea from 0.22.0 to 0.23.2
- Bump golang.org/x/text from 0.3.7 to 0.3.8
- Bump github.com/spf13/cobra from 1.5.0 to 1.6.1
## 0.1.0 - 25.09.22
**Initial release**
`tailspin` is a command line utility for viewing and `tail`-ing log files
================================================
FILE: Cargo.toml
================================================
[package]
name = "tailspin"
version = "6.0.0"
edition = "2024"
authors = ["Ben Sadeh"]
description = "A log file highlighter"
repository = "https://github.com/bensadeh/tailspin"
keywords = ["log", "syntax-highlighting", "tail", "less"]
license = "MIT"
rust-version = "1.93"
[[bin]]
path = "src/main.rs"
name = "tspin"
required-features = ["cli"]
[features]
default = ["cli"]
cli = [
"dep:anyhow",
"dep:clap",
"dep:clap_complete",
"dep:rayon",
"dep:shell-words",
"dep:shellexpand",
"dep:tempfile",
"dep:tokio",
"dep:toml",
]
[profile.release]
lto = "fat"
codegen-units = 1
strip = true
[dependencies]
aho-corasick = "1.1.4"
anyhow = { version = "1.0.102", optional = true }
clap = { version = "4.5.60", features = ["derive", "env", "wrap_help"], optional = true }
clap_complete = { version = "4.5.66", optional = true }
memchr = "2.8.0"
nu-ansi-term = "0.50.3"
rayon = { version = "1.11.0", optional = true }
regex = "1.12.2"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.149", features = ["preserve_order"] }
shell-words = { version = "1.1.1", optional = true }
shellexpand = { version = "3.1.2", optional = true }
tempfile = { version = "3.27.0", optional = true }
thiserror = "2.0.18"
tokio = { version = "1.50.0", features = ["fs", "io-std", "io-util", "macros", "process", "rt", "signal", "sync", "time"], optional = true }
toml = { version = "1.0.3", optional = true }
[dev-dependencies]
criterion = "0.8.2"
[[bench]]
name = "highlighters"
harness = false
[[bench]]
name = "no_match"
harness = false
================================================
FILE: LICENCE
================================================
MIT License
Copyright (c) 2022 Ben Sadeh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
#
A log file highlighter
### Features
- 🪵 View (or `tail`) any log file of any format
- 🍰 No setup or config required
- 🌈 Highlights numbers, dates, IP-addresses, UUIDs, URLs and more
- ⚙️ All highlight groups are customizable
- 🧬 Easy to integrate with other commands
- 📦 Also available as a [crate](https://docs.rs/tailspin)
#
### Table of Contents
* [Overview](#overview)
* [Usage](#usage)
* [Installing](#installing)
* [Highlight Groups](#highlight-groups)
* [Customizing Highlight Groups](#customizing-highlight-groups)
* [Working with `stdin` and `stdout`](#working-with-stdin-and-stdout)
* [Using the pager `less`](#using-the-pager-less)
* [Settings](#settings)
***
## Overview
`tailspin` works by reading through a log file line by line, running a series of regexes
against each line. The regexes recognize patterns you expect to find in a logfile, like dates, numbers, severity
keywords and more.
`tailspin` does not make any assumptions on the format or position of the items it wants to highlight. For this reason,
it requires no configuration and the highlighting will work consistently across different logfiles.
## Usage
The binary name for `tailspin` is `tspin`.
```console
# Read from file and view in `less`
tspin application.log
# Pipe something into `tspin` and print to stdout
echo "hello null" | tspin
# Read from stdin and print to stdout
kubectl logs [pod_name] --follow | tspin
# Run the provided command and view the output in `less`
tspin --exec='kubectl logs -f pod_name'
```
## Installing
Expand to view
### Package Managers
```console
# Homebrew
brew install tailspin
# Cargo
cargo install tailspin
# Archlinux
pacman -S tailspin
# Nix
nix-shell -p tailspin
# NetBSD
pkgin install tailspin
# FreeBSD
pkg install tailspin
# Windows
scoop install tailspin
```
### From Source
```console
cargo install --path .
```
Binary will be placed in `~/.cargo/bin`, make sure you add the folder to your `PATH` environment variable.
> [!IMPORTANT]
> When building from source, make sure that you are using the latest version
> of [`less`](http://greenwoodsoftware.com/less/).
## Highlight Groups
### Dates
### Keywords
### URLs
### Numbers
### IP Addresses
### Quotes
### Unix file paths
### HTTP methods
### UUIDs
### Key-value pairs
### Pointer addresses
### Unix processes
## Customizing Highlight Groups
### Overview
Create a `theme.toml` in `~/.config/tailspin` to customize highlight groups.
Styles have the following shape:
```toml
style = { fg = "color", bg = "color", italic = false, bold = false, underline = false }
```
To edit the different highlight groups, include them in your `theme.toml` file. For example, to edit the `date`
highlight group, add the following to your `theme.toml`:
```toml
[date]
style = { fg = "green" }
```
Expand the section below to see the default config for the highlight groups:
Default highlight groups settings
```toml
[dates]
date = { fg = "magenta" }
time = { fg = "blue" }
zone = { fg = "red" }
separator = { faint = true }
[[keywords]]
words = ['null', 'true', 'false']
style = { fg = "red", italic = true }
[[keywords]]
words = ['GET']
style = { fg = "black", bg = "green" }
[urls]
http = { fg = "red", faint = true }
https = { fg = "green", faint = true }
host = { fg = "blue", faint = true }
path = { fg = "blue" }
query_params_key = { fg = "magenta" }
query_params_value = { fg = "cyan" }
symbols = { fg = "red" }
[numbers]
style = { fg = "cyan" }
[ip_addresses]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[quotes]
style = { fg = "yellow" }
token = '"'
[paths]
segment = { fg = "green", italic = true }
separator = { fg = "yellow" }
[uuids]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[pointers]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[key_value_pairs]
key = { faint = true }
separator = { fg = "white" }
[processes]
name = { fg = "green" }
separator = { fg = "red" }
id = { fg = "yellow" }
[json]
key = { fg = "yellow" }
quote_token = { fg = "yellow", faint = true }
curly_bracket = { faint = true }
square_bracket = { faint = true }
comma = { faint = true }
colon = { faint = true }
```
### Disabling Highlight Groups
To individually disable or enable highlight groups, use the `--enable` and `--disable` flags:
```console
# Enable only the url highlight group, disable the rest
tspin application.log --enable=url
# Disable the numbers highlight group, keep the rest
tspin application.log --disable=numbers
```
### Adding Keywords via theme.toml
To add custom keywords, either include them in the list of keywords or add new entries:
```toml
[[keywords]]
words = ['MyCustomKeyword']
style = { fg = "green" }
[[keywords]]
words = ['null', 'true', 'false']
style = { fg = "red", italic = true }
```
### Adding Keywords from the command line
Sometimes it is more convenient to add highlight groups on the fly without having to edit a TOML. To add highlights from
the command line, use the `--highlight` flag followed by a comma separated list of words to be highlighted.
For example:
```console
tspin --highlight=red:error,fail --highlight=green:success,ok
```
### Custom regex highlighters
When you need more control over the highlighting, you can use the regex highlighter. This highlighter allows you to
specify a regex and a style to be applied to the matched text.
It supports one capture group `()`. When found, it will apply the style to the captured text.
```toml
[[regexes]]
regex = 'Started (.*)\.'
style = { fg = "red" }
```
## Working with `stdin` and `stdout`
### Default behavior with pipes
By default, `tailspin` will open a file in the pager `less`. However, if you pipe something into `tailspin`, it will
print the highlighted output directly to `stdout`. This is similar to running `tspin [file] --print`.
To let `tailspin` highlight the logs of different commands, you can pipe the output of those commands into `tailspin`
like so:
```console
journalctl -f | tspin
cat /var/log/syslog | tspin
kubectl logs -f pod_name | tspin
```
### Capturing the output of a command and viewing it in `less`
To capture the output of a command and view it in `less`, use the `--exec` flag:
```console
tspin --exec 'kubectl logs -f pod_name'
```
This will run the command `kubectl logs -f pod_name` in the background and pipe the output to `tailspin`. The output
will be displayed in `less`, allowing you to navigate and search through the logs.
## Using the pager `less`
### Overview
`tailspin` uses `less` as its pager to view the highlighted log files. You can get more info on `less` via the **man**
command (`man less`) or by hitting the h button to access the help screen.
### Navigating
Navigating within `less` uses a set of keybindings that may be familiar to users of `vim` or other `vi`-like
editors. Here's a brief overview of the most useful navigation commands:
- j/k: Scroll one line up / down
- d/u: Scroll one half-page up / down
- g/G: Go to the top / bottom of the file
### Follow mode
When you run `tailspin` with the `-f` or `--follow` flag, it will scroll to the bottom and print new lines to the screen
as they're added to the file.
To stop following the file, interrupt with Ctrl + C. This will stop the tailing, but keep the
file open, allowing you to review the existing content.
To resume following the file from within `less`, press Shift + F.
### Search
Use / followed by your search query. For example, `/ERROR` finds the first occurrence of
**ERROR**.
After the search, n finds the next instance, and N finds the previous instance.
### Filtering
`less` allows filtering lines by a keyword, using & followed by the pattern. For instance, `&ERROR` shows
only lines with **ERROR**.
To only show lines containing either `ERROR` or `WARN`, use a regular expression: `&\(ERROR\|WARN\)`.
To clear the filter, use & with no pattern.
### Custom pagers
Set the `TAILSPIN_PAGER` environment variable to override the default pager.
The command must include the string **[FILE]** which will be replaced with the file path internally.
For example:
```console
TAILSPIN_PAGER="ov -f [FILE]" tspin example-logs/example1
```
## Settings
```console
-f, --follow Follow the contents of the file
-p, --print Print the output to stdout
-e, --exec='[CMD]' Run command and view the output in a pager
(e.g. `tspin --exec 'kubectl logs -f pod_name'`)
--config-path=[PATH] Use the configuration file from the provided path
--pager=[CUSTOM_PAGER] Set a custom pager
(e.g. `--pager="ov -f [FILE]"`)
--highlight=[COLOR]:[WORDS] Highlight the provided comma-separated words in the specified color
(e.g. `--highlight red:ERROR,WARNING`)
--enable=[HIGHLIGHT_GROUP] Enable one or more highlight groups, disabling the rest
(e.g. `--enable=keywords,urls`)
--disable=[HIGHLIGHT_GROUP] Disable one or more highlight groups, enabling the rest
(e.g. `--disable=keywords,urls`)
--disable-builtin-keywords Disable the highlighting of booleans, nulls, log severities and common REST verbs
```
================================================
FILE: benches/highlighters.rs
================================================
use criterion::{Criterion, criterion_group, criterion_main};
use std::hint::black_box;
use tailspin::Highlighter;
use tailspin::config::*;
use tailspin::style::{Color, Style};
const LOG_LINE: &str = r#"2025-03-07T14:32:01.123Z INFO [server::handler] GET https://api.example.com/v2/users?status=active&limit=100 from 192.168.1.42/24 via fe80::1 ptr=0x7f4a2c00b340 pid=worker[1234] uuid=550e8400-e29b-41d4-a716-446655440000 key=value path=/var/log/app/server.log count=42 "request completed" null true {"status": 200}"#;
fn bench_individual_highlighters(c: &mut Criterion) {
let mut group = c.benchmark_group("highlighters");
group.bench_function("json", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_json_highlighter(JsonConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("json_match", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_json_highlighter(JsonConfig::default());
builder.build().unwrap()
};
let json_input = r#"{"status": 200, "message": "OK", "data": [1, 2, 3]}"#;
b.iter(|| h.apply(black_box(json_input)));
});
group.bench_function("date_time", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_date_time_highlighters(DateTimeConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("url", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_url_highlighter(UrlConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("ip_v4", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_ip_v4_highlighter(IpV4Config::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("ip_v6", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_ip_v6_highlighter(IpV6Config::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("uuid", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_uuid_highlighter(UuidConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("pointer", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_pointer_highlighter(PointerConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("unix_path", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_unix_path_highlighter(UnixPathConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("unix_process", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_unix_process_highlighter(UnixProcessConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("key_value", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_key_value_highlighter(KeyValueConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("number", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_number_highlighter(NumberConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("quote", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_quote_highlighter(QuotesConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("keyword", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_keyword_highlighter(vec![
KeywordConfig {
words: vec![
"ERROR".into(),
"WARN".into(),
"INFO".into(),
"DEBUG".into(),
"TRACE".into(),
],
style: Style::new().fg(Color::Red),
},
KeywordConfig {
words: vec!["GET".into(), "POST".into(), "PUT".into(), "DELETE".into()],
style: Style::new().fg(Color::Green),
},
KeywordConfig {
words: vec!["null".into(), "false".into(), "true".into()],
style: Style::new().fg(Color::Yellow),
},
]);
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.finish();
}
criterion_group!(benches, bench_individual_highlighters);
criterion_main!(benches);
================================================
FILE: benches/no_match.rs
================================================
use criterion::{Criterion, criterion_group, criterion_main};
use std::hint::black_box;
use tailspin::Highlighter;
use tailspin::config::*;
use tailspin::style::{Color, Style};
const LOG_LINE: &str = r#"INFO [server::handler] next request - Loss exceeded max. threshold - status n/a - re-run completed 200 OK user=admin "all good""#;
fn bench_no_match(c: &mut Criterion) {
let mut group = c.benchmark_group("no_match");
group.bench_function("json", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_json_highlighter(JsonConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("date_time", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_date_time_highlighters(DateTimeConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("url", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_url_highlighter(UrlConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("ip_v4", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_ip_v4_highlighter(IpV4Config::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("ip_v6", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_ip_v6_highlighter(IpV6Config::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("uuid", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_uuid_highlighter(UuidConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("pointer", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_pointer_highlighter(PointerConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("unix_path", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_unix_path_highlighter(UnixPathConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("unix_process", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_unix_process_highlighter(UnixProcessConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("key_value", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_key_value_highlighter(KeyValueConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("number", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_number_highlighter(NumberConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("quote", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_quote_highlighter(QuotesConfig::default());
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("regex", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_regex_highlighter(RegexConfig {
regex: r"FOOBAR_\d+".into(),
style: Style::new().fg(Color::Red),
});
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.bench_function("keyword", |b| {
let h = {
let mut builder = Highlighter::builder();
builder.with_keyword_highlighter(vec![
KeywordConfig {
words: vec![
"ERROR".into(),
"WARN".into(),
"INFO".into(),
"DEBUG".into(),
"TRACE".into(),
],
style: Style::new().fg(Color::Red),
},
KeywordConfig {
words: vec!["GET".into(), "POST".into(), "PUT".into(), "DELETE".into()],
style: Style::new().fg(Color::Green),
},
KeywordConfig {
words: vec!["null".into(), "false".into(), "true".into()],
style: Style::new().fg(Color::Yellow),
},
]);
builder.build().unwrap()
};
b.iter(|| h.apply(black_box(LOG_LINE)));
});
group.finish();
}
criterion_group!(benches, bench_no_match);
criterion_main!(benches);
================================================
FILE: completions/tspin.bash
================================================
_tspin() {
local i cur prev opts cmd
COMPREPLY=()
if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
cur="$2"
else
cur="${COMP_WORDS[COMP_CWORD]}"
fi
prev="$3"
cmd=""
opts=""
for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
do
case "${cmd},${i}" in
",$1")
cmd="tspin"
;;
*)
;;
esac
done
case "${cmd}" in
tspin)
opts="-f -p -e -h -V --follow --print --config-path --exec --highlight --enable --disable --disable-builtin-keywords --pager --generate-bash-completions --generate-fish-completions --generate-zsh-completions --help --version [FILE]"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--config-path)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--exec)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-e)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--highlight)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--enable)
COMPREPLY=($(compgen -W "numbers urls pointers dates paths quotes key-value-pairs uuids ip-addresses processes json" -- "${cur}"))
return 0
;;
--disable)
COMPREPLY=($(compgen -W "numbers urls pointers dates paths quotes key-value-pairs uuids ip-addresses processes json" -- "${cur}"))
return 0
;;
--pager)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
esac
}
if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
complete -F _tspin -o nosort -o bashdefault -o default tspin
else
complete -F _tspin -o bashdefault -o default tspin
fi
================================================
FILE: completions/tspin.fish
================================================
complete -c tspin -l config-path -d 'Provide a custom path to a configuration file' -r -F
complete -c tspin -s e -l exec -d 'Run command and view the output in a pager' -r
complete -c tspin -l highlight -d 'Highlights in the form color:word1,word2' -r
complete -c tspin -l enable -d 'Enable specific highlighters' -r -f -a "numbers\t''
urls\t''
pointers\t''
dates\t''
paths\t''
quotes\t''
key-value-pairs\t''
uuids\t''
ip-addresses\t''
processes\t''
json\t''"
complete -c tspin -l disable -d 'Disable specific highlighters' -r -f -a "numbers\t''
urls\t''
pointers\t''
dates\t''
paths\t''
quotes\t''
key-value-pairs\t''
uuids\t''
ip-addresses\t''
processes\t''
json\t''"
complete -c tspin -l pager -d 'Override the default pager command used by tspin. (e.g. `--pager="ov -f [FILE]"`)' -r
complete -c tspin -s f -l follow -d 'Follow the contents of a file'
complete -c tspin -s p -l print -d 'Print the output to stdout'
complete -c tspin -l disable-builtin-keywords -d 'Disable the highlighting of all builtin keyword groups (booleans, nulls, log severities and common REST verbs)'
complete -c tspin -l generate-bash-completions -d 'Print bash completions to stdout'
complete -c tspin -l generate-fish-completions -d 'Print fish completions to stdout'
complete -c tspin -l generate-zsh-completions -d 'Print zsh completions to stdout'
complete -c tspin -s h -l help -d 'Print help (see more with \'--help\')'
complete -c tspin -s V -l version -d 'Print version'
================================================
FILE: completions/tspin.zsh
================================================
#compdef tspin
autoload -U is-at-least
_tspin() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" : \
'--config-path=[Provide a custom path to a configuration file]:CONFIG_PATH:_files' \
'-e+[Run command and view the output in a pager]:EXEC:_default' \
'--exec=[Run command and view the output in a pager]:EXEC:_default' \
'*--highlight=[Highlights in the form color\:word1,word2]:COLOR_WORD:_default' \
'*--enable=[Enable specific highlighters]:ENABLED_HIGHLIGHTERS:(numbers urls pointers dates paths quotes key-value-pairs uuids ip-addresses processes json)' \
'*--disable=[Disable specific highlighters]:DISABLED_HIGHLIGHTERS:(numbers urls pointers dates paths quotes key-value-pairs uuids ip-addresses processes json)' \
'--pager=[Override the default pager command used by tspin. (e.g. \`--pager="ov -f \[FILE\]"\`)]:PAGER:_default' \
'-f[Follow the contents of a file]' \
'--follow[Follow the contents of a file]' \
'-p[Print the output to stdout]' \
'--print[Print the output to stdout]' \
'--disable-builtin-keywords[Disable the highlighting of all builtin keyword groups (booleans, nulls, log severities and common REST verbs)]' \
'--generate-bash-completions[Print bash completions to stdout]' \
'--generate-fish-completions[Print fish completions to stdout]' \
'--generate-zsh-completions[Print zsh completions to stdout]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
'::FILE -- Filepath:_files' \
&& ret=0
}
(( $+functions[_tspin_commands] )) ||
_tspin_commands() {
local commands; commands=()
_describe -t commands 'tspin commands' commands "$@"
}
if [ "$funcstack[1]" = "_tspin" ]; then
_tspin "$@"
else
compdef _tspin tspin
fi
================================================
FILE: config.toml
================================================
[pointer]
number = { fg = "green" }
letter = { fg = "blue" }
separator = { fg = "red" }
separator_token = "a"
x = { fg = "red" }
[[regexps]]
regex = 'Started (.*)\.'
style = { fg = "red" }
[[regexps]]
regex = 'Stopped .*'
style = { fg = "magenta" }
================================================
FILE: example-logs/example1
================================================
Aug 14 00:30:00 abc-MBP newsyslog[79597]: logfile turned over
Sun Aug 14 08:23:55.927 INFO Ignoring non-dps events while not in monitoring period/ Ignoring DPS event while in monitoring period
Sun Aug 14 09:50:18.749 WARN Could not set property APPLE80211_REGKEY_AWDL_MAC_ADDRESS_IN_USE to 1
Sun Aug 14 10:51:19.239 DEBUG [fcfff715-82cc-400d-88b4-56f25b5a5239:networkName:BSSID:]
Sun Aug 14 10:51:19.251 ERROR Usb Host Notification Error Apple80211Set: Device power is off seqNum 16 Total 4 chg 1 en0
Sun Aug 14 10:51:19.272 INFO _handleLinkEvent: WiFi is not powered. Resetting state variables.
Sun Aug 14 10:51:19.316 DEBUG Usb Host Notification Error Apple80211Set: Device power is off seqNum 17 Total 4 chg 1 en0
Sun Aug 14 10:51:22.602 DEBUG sharingd (542) is not entitled for com.apple.wifi.join_history, will not allow request
Jan 02 21:14:54 innodellix (udev-worker)[1]: Started Accounts Service.
Jan 02 21:14:54 innodellix systemd[1]: Started Rule-based Manager for Device Events and Files.
Jan 02 21:14:54 innodellix systemd[1]: Stopped libvirtd-config.service: Deactivated successfully.
Jan 02 21:14:54 innodellix systemd[1]: Finished Libvirt Virtual Machine Management Daemon - configuration.
Jan 02 21:14:54 innodellix systemd[1]: suid-sgid-wrappers.service: Deactivated successfully.
Jan 02 21:14:54 innodellix systemd[1]: Finished Create SUID/SGID Wrappers.
Jan 02 21:14:54 innodellix systemd[1]: Started Cleanup of Snapper Snapshots.
# Date and Time
07:46:34 Data backup created
10:51:19.251 Event logged
2023/10/02 11:47:39:850 Task completed
2022-09-09 11:48:34,534 Last login attempt failed
2022-09-22T07:46:34.171800155Z Event logged for debugging purposes
# IP
Suspicious activity detected from IP: 10.0.0.123
Connected to server at IP address: 192.168.0.1
No connection with remote host: 172.16.0.254
Request received from client IP: 2001:db8:0:0:0:ff00:42:8329
Multiple failed login attempts: 2001:db8::ff00:42:8329
# Ip v 6
Log 2001:0db8:85a3:0000:0000:8a2e:0370:7334 asdf
Log 2001:db8:85a3::8a2e:370:7334 asdf
Log 2001:db8:85a3::8a2e:192.0.2.33 asdf
Log fe80::7a31:c1ff:fe02:bc33 asdf
Log [2001:db8:85a3::8a2e:370:7334]:8080 asdf
Log 2001:db8::1234:5678 asdf
Log fe80::1ff:fe23:4567:890a%eth0 asdf
# Pointers
Error occurred at memory address 0x8c2a0aeb
Received data from 0x25f4a93b, processing now
Kernel module loaded at address 0xd7b3b2f446e2c21b
Failed to read data from address 0x96dc1ac2a6db0b40
Copying data from 0x7f6a2c21 to 0x706a2c21
# Numbers
Duration: 42 seconds
High CPU usage detected: 95%
Value must be between 1 and 10, received: 15
Records created: 1000
Calculation result: 3.14159
# URL
http://example.com/path/to/resource?param1=value1¶m2=value2
http://api.example.com/v2/resources?search=keyword&page=1
https://api.example.org/api/v1/users?name=JohnDoe
https://www.openai.com/docs/api?apikey=abc123
https://api.example.org/v1/users/123/edit?param=true&flag=false
# HTTP Methods
User with IP 192.168.1.105 initiated a GET request for /about/us
A POST request by 192.168.1.106 to /api/create-account failed
Received a PUT operation on /api/v1/users/update-profile
During routine checks at 14:13:40, a PATCH request was detected
Unauthorized DELETE attempt on /api/v2/data/secure by user
# UUID
User logged in, user ID: 5f7d1bce-81ab-4a87-af78-9a37f26c58b1
Invalid request: 9f5f25be-6b08-4aeb-a10a-023b86581b1f
Database connection failed: 3e169d8f-c971-4e6b-8ff3-90ac2c912e6c
Task completed successfully: d8f40210-7ef4-4d2a-b482-25e8b3a9eae8
Processing request: 2a54e369-12f7-4ec2-9dc1-685e05b9017a
# Unix file paths
Failed to open directory: /usr/local/bin/
File successfully created: /var/log/application.log
Reading configuration file: /etc/nginx/nginx.conf
File not found: ~/project/user/documents/report.pdf
Processing file: ~/discovery/alfa/project/src/main.js
# Keywords
[INFO ] Task completed. Status: true (result: null)
[WARN ] Invalid input received (isValid: false)
[ERROR] Connection failed: null (isConnected: false)
[TRACE] Configuration loaded: true (version: N/A, env: null)
[DEBUG] Invalid request: {active: true, age: null}
# Quotes
Request made to sync data with our partner "Acme Corp's" servers.
Cache miss detected, fetching fresh copy from "Main Server".
User "Alice" logged out. All associated sessions cleared.
Purchase for item "Red Bicycle" was successful. Thank you!
Configuration file "PrimaryConfig" loaded. Starting operations.
Processing new order for customer "JohnDoe". Stand by.
# Key-value pairs
ts=08:11:36 caller=module_service.go:59 module=table-manager
ts=08:11:36 caller=module_service.go:59 module=ingester-querier
ts=08:11:36 caller=lifecycler.go:530 msg="file path is empty"
ts=2022-09-22 caller=ring.go:275 msg="ring doesn't exist"
ts=2022-09-21 caller=client.go:247 msg="value is nil"
# Processes
kernel[0]: Page fault at address 0xabcdef
mysqld[789]: Connected from 127.0.0.1
docker[654]: Container abcdefgh started successfully
ssh-d[222]: Accepted publickey for root from 192.168.1.20
cron[101]: Running scheduled job ID 23456
# JSON
{"timestamp": "2022-09-22T08:11:36.171800155Z", "message": "Task completed", "status": "success"}
{"timestamp": "2022-09-22T08:11:36.171800155Z", "message": "Connection failed", "status": "error"}
{"timestamp": "2022-09-22T08:11:36.171800155Z", "message": "Invalid input received", "status": "warning"}
{"timestamp": "2022-09-22T08:11:36.171800155Z", "message": "Configuration loaded", "status": "info"}
{"timestamp": "2022-09-22T08:11:36.171800155Z", "message": "Invalid request", "status": "debug"}
================================================
FILE: example-logs/example2
================================================
2022-09-09 11:44:54,508 [Worker-2: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
2022-09-09 11:47:47,193 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.7.3/spring-boot-starter-parent-2.7.3.pom
2022-09-09 11:47:47,783 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.7.3/spring-boot-starter-parent-2.7.3.pom
2022-09-09 11:47:47,993 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.3/spring-boot-dependencies-2.7.3.pom
2022-09-09 11:47:48,618 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.3/spring-boot-dependencies-2.7.3.pom
2022-09-09 11:47:49,563 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.4/kotlinx-coroutines-bom-1.6.4.pom
2022-09-09 11:47:49,779 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.4/kotlinx-coroutines-bom-1.6.4.pom
2022-09-09 11:47:50,041 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/io/micrometer/micrometer-bom/1.9.3/micrometer-bom-1.9.3.pom
2022-09-09 11:47:50,272 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/io/micrometer/micrometer-bom/1.9.3/micrometer-bom-1.9.3.pom
2022-09-09 11:47:50,650 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/io/rest-assured/rest-assured-bom/4.5.1/rest-assured-bom-4.5.1.pom
2022-09-09 11:47:50,881 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/io/rest-assured/rest-assured-bom/4.5.1/rest-assured-bom-4.5.1.pom
2022-09-09 11:47:51,101 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-bom/2021.2.2/spring-data-bom-2021.2.2.pom
2022-09-09 11:47:51,351 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-bom/2021.2.2/spring-data-bom-2021.2.2.pom
2022-09-09 11:47:51,598 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-bom/5.7.3/spring-security-bom-5.7.3.pom
2022-09-09 11:47:51,876 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-bom/5.7.3/spring-security-bom-5.7.3.pom
2022-09-09 11:47:53,118 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.3/spring-boot-maven-plugin-2.7.3.pom
2022-09-09 11:47:53,467 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.3/spring-boot-maven-plugin-2.7.3.pom
2022-09-09 11:47:53,657 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.3/spring-boot-maven-plugin-2.7.3.jar
2022-09-09 11:47:54,222 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.3/spring-boot-maven-plugin-2.7.3.jar
2022-09-09 11:47:57,130 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:47:57,339 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3.pom
2022-09-09 11:47:57,550 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3.pom
2022-09-09 11:47:57,755 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3.pom
2022-09-09 11:47:57,972 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3.pom
2022-09-09 11:47:58,176 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3.pom
2022-09-09 11:47:58,422 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3.pom
2022-09-09 11:47:58,633 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3.pom
2022-09-09 11:47:58,855 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3.pom
2022-09-09 11:47:59,161 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3.pom
2022-09-09 11:47:59,372 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3.pom
2022-09-09 11:47:59,574 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3.pom
2022-09-09 11:47:59,782 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3.pom
2022-09-09 11:48:00,216 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3.pom
2022-09-09 11:48:00,426 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3.pom
2022-09-09 11:48:00,641 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22.pom
2022-09-09 11:48:00,874 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22.pom
2022-09-09 11:48:01,091 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22.pom
2022-09-09 11:48:01,339 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22.pom
2022-09-09 11:48:01,612 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final.pom
2022-09-09 11:48:01,827 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final.pom
2022-09-09 11:48:02,086 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13.pom
2022-09-09 11:48:02,310 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13.pom
2022-09-09 11:48:02,538 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.12.13/byte-buddy-parent-1.12.13.pom
2022-09-09 11:48:02,777 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.12.13/byte-buddy-parent-1.12.13.pom
2022-09-09 11:48:03,294 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2.pom
2022-09-09 11:48:03,528 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2.pom
2022-09-09 11:48:03,741 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-parent/2.7.2/spring-data-parent-2.7.2.pom
2022-09-09 11:48:03,967 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-parent/2.7.2/spring-data-parent-2.7.2.pom
2022-09-09 11:48:04,170 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-build/2.7.2/spring-data-build-2.7.2.pom
2022-09-09 11:48:04,408 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-build/2.7.2/spring-data-build-2.7.2.pom
2022-09-09 11:48:04,619 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/testcontainers/testcontainers-bom/1.17.3/testcontainers-bom-1.17.3.pom
2022-09-09 11:48:04,863 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/testcontainers/testcontainers-bom/1.17.3/testcontainers-bom-1.17.3.pom
2022-09-09 11:48:05,086 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.3/kotlinx-coroutines-bom-1.6.3.pom
2022-09-09 11:48:05,300 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.3/kotlinx-coroutines-bom-1.6.3.pom
2022-09-09 11:48:05,635 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2.pom
2022-09-09 11:48:05,847 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2.pom
2022-09-09 11:48:06,048 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22.pom
2022-09-09 11:48:06,288 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22.pom
2022-09-09 11:48:06,497 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22.pom
2022-09-09 11:48:06,719 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22.pom
2022-09-09 11:48:06,924 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3.pom
2022-09-09 11:48:07,167 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3.pom
2022-09-09 11:48:07,380 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3.pom
2022-09-09 11:48:07,624 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3.pom
2022-09-09 11:48:07,834 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3.pom
2022-09-09 11:48:08,072 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3.pom
2022-09-09 11:48:08,275 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3.pom
2022-09-09 11:48:08,513 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3.pom
2022-09-09 11:48:08,712 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3.pom
2022-09-09 11:48:08,946 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3.pom
2022-09-09 11:48:09,174 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3.pom
2022-09-09 11:48:09,429 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3.pom
2022-09-09 11:48:09,641 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3.pom
2022-09-09 11:48:09,853 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3.pom
2022-09-09 11:48:10,183 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3.pom
2022-09-09 11:48:10,431 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3.pom
2022-09-09 11:48:10,720 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214.pom
2022-09-09 11:48:10,939 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214.pom
2022-09-09 11:48:11,145 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3.pom
2022-09-09 11:48:11,361 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3.pom
2022-09-09 11:48:11,560 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3.pom
2022-09-09 11:48:11,778 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3.pom
2022-09-09 11:48:11,973 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3.pom
2022-09-09 11:48:12,187 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3.pom
2022-09-09 11:48:12,678 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13.pom
2022-09-09 11:48:12,897 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13.pom
2022-09-09 11:48:13,235 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3.pom
2022-09-09 11:48:13,487 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3.pom
2022-09-09 11:48:13,792 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3.jar
2022-09-09 11:48:13,971 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3.jar
2022-09-09 11:48:13,989 [AetherRepositoryConnector-repo.maven.apache.org-0-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final.jar
2022-09-09 11:48:14,014 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3.jar
2022-09-09 11:48:14,210 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22.jar
2022-09-09 11:48:14,392 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3.jar
2022-09-09 11:48:14,595 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3.jar
2022-09-09 11:48:14,658 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3.jar
2022-09-09 11:48:16,378 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13.jar
2022-09-09 11:48:16,598 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2.jar
2022-09-09 11:48:16,609 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2.jar
2022-09-09 11:48:16,895 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22.jar
2022-09-09 11:48:17,562 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22.jar
2022-09-09 11:48:18,106 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2.jar
2022-09-09 11:48:19,250 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22.jar
2022-09-09 11:48:19,257 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22.jar
2022-09-09 11:48:21,209 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22.jar
2022-09-09 11:48:22,224 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2.jar
2022-09-09 11:48:22,551 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22.jar
2022-09-09 11:48:22,667 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22.jar
2022-09-09 11:48:23,193 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3.jar
2022-09-09 11:48:23,560 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3.jar
2022-09-09 11:48:23,696 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3.jar
2022-09-09 11:48:24,154 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3.jar
2022-09-09 11:48:24,546 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3.jar
2022-09-09 11:48:25,411 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3.jar
2022-09-09 11:48:25,848 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3.jar
2022-09-09 11:48:26,701 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3.jar
2022-09-09 11:48:27,321 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13.jar
2022-09-09 11:48:27,718 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3.jar
2022-09-09 11:48:28,118 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3.jar
2022-09-09 11:48:28,348 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3.jar
2022-09-09 11:48:29,426 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3.jar
2022-09-09 11:48:30,605 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3.jar
2022-09-09 11:48:30,725 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3.jar
2022-09-09 11:48:31,812 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3.jar
2022-09-09 11:48:32,061 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3.jar
2022-09-09 11:48:32,078 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3.jar
2022-09-09 11:48:32,078 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214.jar
2022-09-09 11:48:32,665 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3.jar
2022-09-09 11:48:32,774 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3.jar
2022-09-09 11:48:32,799 [AetherRepositoryConnector-repo.maven.apache.org-0-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final.jar
2022-09-09 11:48:32,805 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3.jar
2022-09-09 11:48:33,228 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3.jar
2022-09-09 11:48:33,277 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3.jar
2022-09-09 11:48:33,318 [AetherRepositoryConnector-repo.maven.apache.org-0-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3.jar
2022-09-09 11:48:33,318 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13.jar
2022-09-09 11:48:33,784 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3.jar
2022-09-09 11:48:33,964 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3.jar
2022-09-09 11:48:34,128 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3.jar
2022-09-09 11:48:34,152 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214.jar
2022-09-09 11:48:34,153 [AetherRepositoryConnector-repo.maven.apache.org-0-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13.jar
2022-09-09 11:48:34,162 [AetherRepositoryConnector-repo.maven.apache.org-0-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3.jar
2022-09-09 11:48:34,312 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3.jar
2022-09-09 11:48:34,473 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3.jar
2022-09-09 11:48:34,534 [AetherRepositoryConnector-repo.maven.apache.org-0-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3.jar
2022-09-09 11:48:34,702 [AetherRepositoryConnector-repo.maven.apache.org-0-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3.jar
2022-09-09 11:48:34,893 [AetherRepositoryConnector-repo.maven.apache.org-0-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3.jar
2022-09-09 11:48:35,096 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:48:39,751 [Worker-3: Importing Maven projects] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding source folder /backend/src/main/java
2022-09-09 11:48:39,752 [Worker-3: Importing Maven projects] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding resource folder /backend/src/main/resources
2022-09-09 11:48:39,759 [Worker-3: Importing Maven projects] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding resource folder /backend/src/main/resources
2022-09-09 11:48:39,768 [Worker-3: Importing Maven projects] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding source folder /backend/src/test/java
2022-09-09 11:48:41,569 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3-sources.jar
2022-09-09 11:48:41,963 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.3/spring-boot-starter-data-jpa-2.7.3-sources.jar
2022-09-09 11:48:41,973 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-data-jpa:2.7.3
2022-09-09 11:48:42,763 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3-sources.jar
2022-09-09 11:48:43,152 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.3/spring-boot-starter-aop-2.7.3-sources.jar
2022-09-09 11:48:43,156 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-aop:2.7.3
2022-09-09 11:48:43,920 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3-sources.jar
2022-09-09 11:48:44,300 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.3/spring-boot-starter-jdbc-2.7.3-sources.jar
2022-09-09 11:48:44,312 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-jdbc:2.7.3
2022-09-09 11:48:45,022 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22-sources.jar
2022-09-09 11:48:45,315 [Worker-3: Importing Maven projects] INFO o.e.m.c.i.p.ProjectConfigurationManager - Imported and configured 1 project(s) in 60 sec
2022-09-09 11:48:46,029 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22-sources.jar
2022-09-09 11:48:46,045 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-jdbc:5.3.22
2022-09-09 11:48:46,667 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:48:46,667 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:48:46,673 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-09 11:48:46,696 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:48:46,701 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:48:46,701 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:48:46,701 [Worker-12: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:48:46,815 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final-sources.jar
2022-09-09 11:48:52,452 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final-sources.jar
2022-09-09 11:48:52,461 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.hibernate:hibernate-core:5.6.10.Final
2022-09-09 11:48:53,230 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13-sources.jar
2022-09-09 11:48:55,694 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.13/byte-buddy-1.12.13-sources.jar
2022-09-09 11:48:55,715 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for net.bytebuddy:byte-buddy:1.12.13
2022-09-09 11:48:56,481 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2-sources.jar
2022-09-09 11:48:57,363 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2-sources.jar
2022-09-09 11:48:57,374 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.data:spring-data-jpa:2.7.2
2022-09-09 11:48:58,089 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2-sources.jar
2022-09-09 11:48:59,639 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2-sources.jar
2022-09-09 11:48:59,663 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.data:spring-data-commons:2.7.2
2022-09-09 11:49:00,486 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22-sources.jar
2022-09-09 11:49:01,318 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22-sources.jar
2022-09-09 11:49:01,323 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-orm:5.3.22
2022-09-09 11:49:02,134 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.22/spring-context-5.3.22-sources.jar
2022-09-09 11:49:05,545 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.22/spring-context-5.3.22-sources.jar
2022-09-09 11:49:05,558 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-context:5.3.22
2022-09-09 11:49:06,316 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22-sources.jar
2022-09-09 11:49:07,332 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22-sources.jar
2022-09-09 11:49:07,343 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-tx:5.3.22
2022-09-09 11:49:08,055 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.22/spring-beans-5.3.22-sources.jar
2022-09-09 11:49:09,246 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.22/spring-beans-5.3.22-sources.jar
2022-09-09 11:49:09,261 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-beans:5.3.22
2022-09-09 11:49:10,033 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22-sources.jar
2022-09-09 11:49:10,446 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22-sources.jar
2022-09-09 11:49:10,449 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-aspects:5.3.22
2022-09-09 11:49:11,267 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3-sources.jar
2022-09-09 11:49:11,675 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.3/spring-boot-starter-security-2.7.3-sources.jar
2022-09-09 11:49:11,697 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-security:2.7.3
2022-09-09 11:49:12,586 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3-sources.jar
2022-09-09 11:49:13,018 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.3/spring-boot-starter-2.7.3-sources.jar
2022-09-09 11:49:13,022 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter:2.7.3
2022-09-09 11:49:13,935 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3-sources.jar
2022-09-09 11:49:16,496 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.3/spring-boot-2.7.3-sources.jar
2022-09-09 11:49:16,504 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot:2.7.3
2022-09-09 11:49:17,305 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3-sources.jar
2022-09-09 11:49:18,911 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.3/spring-boot-autoconfigure-2.7.3-sources.jar
2022-09-09 11:49:18,921 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-autoconfigure:2.7.3
2022-09-09 11:49:19,706 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3-sources.jar
2022-09-09 11:49:20,098 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.3/spring-boot-starter-logging-2.7.3-sources.jar
2022-09-09 11:49:20,105 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-logging:2.7.3
2022-09-09 11:49:20,822 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.22/spring-aop-5.3.22-sources.jar
2022-09-09 11:49:21,863 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.22/spring-aop-5.3.22-sources.jar
2022-09-09 11:49:21,890 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-aop:5.3.22
2022-09-09 11:49:22,648 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3-sources.jar
2022-09-09 11:49:24,151 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.3/spring-security-config-5.7.3-sources.jar
2022-09-09 11:49:24,156 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-config:5.7.3
2022-09-09 11:49:24,943 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3-sources.jar
2022-09-09 11:49:26,236 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.3/spring-security-web-5.7.3-sources.jar
2022-09-09 11:49:26,257 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-web:5.7.3
2022-09-09 11:49:27,047 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.22/spring-expression-5.3.22-sources.jar
2022-09-09 11:49:27,929 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.22/spring-expression-5.3.22-sources.jar
2022-09-09 11:49:27,940 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-expression:5.3.22
2022-09-09 11:49:28,708 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3-sources.jar
2022-09-09 11:49:29,103 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3-sources.jar
2022-09-09 11:49:29,118 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-web:2.7.3
2022-09-09 11:49:29,852 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3-sources.jar
2022-09-09 11:49:30,211 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.3/spring-boot-starter-json-2.7.3-sources.jar
2022-09-09 11:49:30,219 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-json:2.7.3
2022-09-09 11:49:30,950 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3-sources.jar
2022-09-09 11:49:31,331 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.3/spring-boot-starter-tomcat-2.7.3-sources.jar
2022-09-09 11:49:31,347 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-tomcat:2.7.3
2022-09-09 11:49:32,118 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.65/tomcat-embed-core-9.0.65-sources.jar
2022-09-09 11:49:37,923 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.65/tomcat-embed-core-9.0.65-sources.jar
2022-09-09 11:49:37,947 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-core:9.0.65
2022-09-09 11:49:38,908 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.65/tomcat-embed-el-9.0.65-sources.jar
2022-09-09 11:49:40,073 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.65/tomcat-embed-el-9.0.65-sources.jar
2022-09-09 11:49:40,089 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-el:9.0.65
2022-09-09 11:49:40,842 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.65/tomcat-embed-websocket-9.0.65-sources.jar
2022-09-09 11:49:41,880 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.65/tomcat-embed-websocket-9.0.65-sources.jar
2022-09-09 11:49:41,904 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-websocket:9.0.65
2022-09-09 11:49:42,734 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.22/spring-web-5.3.22-sources.jar
2022-09-09 11:49:45,234 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.22/spring-web-5.3.22-sources.jar
2022-09-09 11:49:45,242 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-web:5.3.22
2022-09-09 11:49:45,926 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.22/spring-webmvc-5.3.22-sources.jar
2022-09-09 11:49:47,978 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.22/spring-webmvc-5.3.22-sources.jar
2022-09-09 11:49:47,985 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-webmvc:5.3.22
2022-09-09 11:49:48,917 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214-sources.jar
2022-09-09 11:49:54,501 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/com/h2database/h2/2.1.214/h2-2.1.214-sources.jar
2022-09-09 11:49:54,509 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for com.h2database:h2:2.1.214
2022-09-09 11:49:55,501 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3-sources.jar
2022-09-09 11:49:56,076 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.3/spring-boot-starter-test-2.7.3-sources.jar
2022-09-09 11:49:56,100 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-test:2.7.3
2022-09-09 11:49:56,988 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3-sources.jar
2022-09-09 11:49:57,740 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.3/spring-boot-test-2.7.3-sources.jar
2022-09-09 11:49:57,748 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-test:2.7.3
2022-09-09 11:49:58,552 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3-sources.jar
2022-09-09 11:49:59,566 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.3/spring-boot-test-autoconfigure-2.7.3-sources.jar
2022-09-09 11:49:59,590 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-test-autoconfigure:2.7.3
2022-09-09 11:50:00,476 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13-sources.jar
2022-09-09 11:50:01,596 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.13/byte-buddy-agent-1.12.13-sources.jar
2022-09-09 11:50:01,605 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for net.bytebuddy:byte-buddy-agent:1.12.13
2022-09-09 11:50:02,466 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/skyscreamer/jsonassert/1.5.1/jsonassert-1.5.1-sources.jar
2022-09-09 11:50:02,883 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/skyscreamer/jsonassert/1.5.1/jsonassert-1.5.1-sources.jar
2022-09-09 11:50:02,896 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.skyscreamer:jsonassert:1.5.1
2022-09-09 11:50:03,740 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.22/spring-core-5.3.22-sources.jar
2022-09-09 11:50:05,908 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.22/spring-core-5.3.22-sources.jar
2022-09-09 11:50:05,922 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-core:5.3.22
2022-09-09 11:50:06,937 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.22/spring-jcl-5.3.22-sources.jar
2022-09-09 11:50:07,328 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.22/spring-jcl-5.3.22-sources.jar
2022-09-09 11:50:07,331 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-jcl:5.3.22
2022-09-09 11:50:08,053 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.22/spring-test-5.3.22-sources.jar
2022-09-09 11:50:09,182 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.22/spring-test-5.3.22-sources.jar
2022-09-09 11:50:09,195 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-test:5.3.22
2022-09-09 11:50:10,006 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3-sources.jar
2022-09-09 11:50:10,479 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.3/spring-security-test-5.7.3-sources.jar
2022-09-09 11:50:10,503 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-test:5.7.3
2022-09-09 11:50:11,345 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3-sources.jar
2022-09-09 11:50:12,728 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.3/spring-security-core-5.7.3-sources.jar
2022-09-09 11:50:12,736 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-core:5.7.3
2022-09-09 11:50:13,629 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3-sources.jar
2022-09-09 11:50:14,166 [Worker-11: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.3/spring-security-crypto-5.7.3-sources.jar
2022-09-09 11:50:14,179 [Worker-11: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-crypto:5.7.3
2022-09-09 11:50:14,580 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:50:14,580 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:50:14,582 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:50:14,583 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:50:14,585 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:50:14,585 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:50:14,585 [Worker-3: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:52:27,499 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.1/spring-boot-dependencies-2.7.1.pom
2022-09-09 11:52:28,131 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.1/spring-boot-dependencies-2.7.1.pom
2022-09-09 11:52:28,426 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/io/micrometer/micrometer-bom/1.9.1/micrometer-bom-1.9.1.pom
2022-09-09 11:52:28,657 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/io/micrometer/micrometer-bom/1.9.1/micrometer-bom-1.9.1.pom
2022-09-09 11:52:28,871 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/io/netty/netty-bom/4.1.78.Final/netty-bom-4.1.78.Final.pom
2022-09-09 11:52:29,114 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/io/netty/netty-bom/4.1.78.Final/netty-bom-4.1.78.Final.pom
2022-09-09 11:52:29,343 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/io/projectreactor/reactor-bom/2020.0.20/reactor-bom-2020.0.20.pom
2022-09-09 11:52:29,618 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/io/projectreactor/reactor-bom/2020.0.20/reactor-bom-2020.0.20.pom
2022-09-09 11:52:29,846 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-bom/2021.2.1/spring-data-bom-2021.2.1.pom
2022-09-09 11:52:30,112 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-bom/2021.2.1/spring-data-bom-2021.2.1.pom
2022-09-09 11:52:30,319 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-framework-bom/5.3.21/spring-framework-bom-5.3.21.pom
2022-09-09 11:52:30,565 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-framework-bom/5.3.21/spring-framework-bom-5.3.21.pom
2022-09-09 11:52:30,779 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/integration/spring-integration-bom/5.5.13/spring-integration-bom-5.5.13.pom
2022-09-09 11:52:31,044 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/integration/spring-integration-bom/5.5.13/spring-integration-bom-5.5.13.pom
2022-09-09 11:52:31,259 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-bom/5.7.2/spring-security-bom-5.7.2.pom
2022-09-09 11:52:31,511 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-bom/5.7.2/spring-security-bom-5.7.2.pom
2022-09-09 11:52:32,373 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.1/spring-boot-maven-plugin-2.7.1.pom
2022-09-09 11:52:32,765 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.1/spring-boot-maven-plugin-2.7.1.pom
2022-09-09 11:52:32,963 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.1/spring-boot-maven-plugin-2.7.1.jar
2022-09-09 11:52:33,571 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.7.1/spring-boot-maven-plugin-2.7.1.jar
2022-09-09 11:52:33,718 [Worker-11: Building] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:52:33,917 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1.pom
2022-09-09 11:52:34,194 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1.pom
2022-09-09 11:52:34,422 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1.pom
2022-09-09 11:52:34,661 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1.pom
2022-09-09 11:52:34,885 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1.pom
2022-09-09 11:52:35,150 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1.pom
2022-09-09 11:52:35,370 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1.pom
2022-09-09 11:52:35,623 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1.pom
2022-09-09 11:52:35,842 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21.pom
2022-09-09 11:52:36,114 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21.pom
2022-09-09 11:52:36,324 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21.pom
2022-09-09 11:52:36,574 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21.pom
2022-09-09 11:52:36,785 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21.pom
2022-09-09 11:52:37,049 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21.pom
2022-09-09 11:52:37,263 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21.pom
2022-09-09 11:52:37,518 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21.pom
2022-09-09 11:52:37,736 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21.pom
2022-09-09 11:52:38,003 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21.pom
2022-09-09 11:52:38,219 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21.pom
2022-09-09 11:52:38,475 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21.pom
2022-09-09 11:52:38,692 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1.pom
2022-09-09 11:52:38,962 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1.pom
2022-09-09 11:52:39,178 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1.pom
2022-09-09 11:52:39,438 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1.pom
2022-09-09 11:52:39,672 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1.pom
2022-09-09 11:52:39,932 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1.pom
2022-09-09 11:52:40,143 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21.pom
2022-09-09 11:52:40,392 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21.pom
2022-09-09 11:52:40,612 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21.pom
2022-09-09 11:52:40,877 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21.pom
2022-09-09 11:52:41,136 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11.pom
2022-09-09 11:52:41,369 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11.pom
2022-09-09 11:52:41,577 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.12.11/byte-buddy-parent-1.12.11.pom
2022-09-09 11:52:41,834 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.12.11/byte-buddy-parent-1.12.11.pom
2022-09-09 11:52:42,056 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1.pom
2022-09-09 11:52:42,304 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1.pom
2022-09-09 11:52:42,518 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-parent/2.7.1/spring-data-parent-2.7.1.pom
2022-09-09 11:52:42,790 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-parent/2.7.1/spring-data-parent-2.7.1.pom
2022-09-09 11:52:42,999 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-build/2.7.1/spring-data-build-2.7.1.pom
2022-09-09 11:52:43,240 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/build/spring-data-build/2.7.1/spring-data-build-2.7.1.pom
2022-09-09 11:52:43,457 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/testcontainers/testcontainers-bom/1.17.2/testcontainers-bom-1.17.2.pom
2022-09-09 11:52:43,712 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/testcontainers/testcontainers-bom/1.17.2/testcontainers-bom-1.17.2.pom
2022-09-09 11:52:43,928 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.2/kotlinx-coroutines-bom-1.6.2.pom
2022-09-09 11:52:44,146 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.6.2/kotlinx-coroutines-bom-1.6.2.pom
2022-09-09 11:52:44,345 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1.pom
2022-09-09 11:52:44,569 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1.pom
2022-09-09 11:52:44,775 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21.pom
2022-09-09 11:52:45,005 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21.pom
2022-09-09 11:52:45,207 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21.pom
2022-09-09 11:52:45,429 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21.pom
2022-09-09 11:52:45,628 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1.pom
2022-09-09 11:52:45,857 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1.pom
2022-09-09 11:52:46,076 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2.pom
2022-09-09 11:52:46,338 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2.pom
2022-09-09 11:52:46,554 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2.pom
2022-09-09 11:52:46,821 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2.pom
2022-09-09 11:52:47,040 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2.pom
2022-09-09 11:52:47,307 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2.pom
2022-09-09 11:52:47,510 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2.pom
2022-09-09 11:52:47,736 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2.pom
2022-09-09 11:52:47,949 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21.pom
2022-09-09 11:52:48,197 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21.pom
2022-09-09 11:52:48,416 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1.pom
2022-09-09 11:52:48,667 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1.pom
2022-09-09 11:52:48,871 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1.pom
2022-09-09 11:52:49,127 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1.pom
2022-09-09 11:52:49,355 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1.pom
2022-09-09 11:52:49,620 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1.pom
2022-09-09 11:52:49,827 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64.pom
2022-09-09 11:52:50,085 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64.pom
2022-09-09 11:52:50,290 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64.pom
2022-09-09 11:52:50,541 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64.pom
2022-09-09 11:52:50,746 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64.pom
2022-09-09 11:52:51,048 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64.pom
2022-09-09 11:52:51,249 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21.pom
2022-09-09 11:52:51,500 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21.pom
2022-09-09 11:52:51,721 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1.pom
2022-09-09 11:52:51,970 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1.pom
2022-09-09 11:52:52,182 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1.pom
2022-09-09 11:52:52,455 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1.pom
2022-09-09 11:52:52,677 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1.pom
2022-09-09 11:52:52,937 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1.pom
2022-09-09 11:52:53,172 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11.pom
2022-09-09 11:52:53,423 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11.pom
2022-09-09 11:52:53,672 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21.pom
2022-09-09 11:52:53,924 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21.pom
2022-09-09 11:52:54,155 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2.pom
2022-09-09 11:52:54,412 [Worker-11: Building] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2.pom
2022-09-09 11:52:54,648 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1.jar
2022-09-09 11:52:54,837 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1.jar
2022-09-09 11:52:54,840 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1.jar
2022-09-09 11:52:54,853 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21.jar
2022-09-09 11:52:55,223 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11.jar
2022-09-09 11:52:55,252 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1.jar
2022-09-09 11:52:55,429 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1.jar
2022-09-09 11:52:55,431 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1.jar
2022-09-09 11:52:57,095 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1.jar
2022-09-09 11:52:57,110 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21.jar
2022-09-09 11:52:57,110 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1.jar
2022-09-09 11:52:57,142 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21.jar
2022-09-09 11:52:58,189 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21.jar
2022-09-09 11:52:58,732 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21.jar
2022-09-09 11:52:58,840 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1.jar
2022-09-09 11:52:59,937 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21.jar
2022-09-09 11:53:00,128 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21.jar
2022-09-09 11:53:02,640 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1.jar
2022-09-09 11:53:03,384 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21.jar
2022-09-09 11:53:03,706 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21.jar
2022-09-09 11:53:03,799 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1.jar
2022-09-09 11:53:03,814 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21.jar
2022-09-09 11:53:03,818 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21.jar
2022-09-09 11:53:04,010 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1.jar
2022-09-09 11:53:04,208 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1.jar
2022-09-09 11:53:04,212 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1.jar
2022-09-09 11:53:04,212 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21.jar
2022-09-09 11:53:04,212 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11.jar
2022-09-09 11:53:04,857 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1.jar
2022-09-09 11:53:04,857 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1.jar
2022-09-09 11:53:04,857 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21.jar
2022-09-09 11:53:04,865 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1.jar
2022-09-09 11:53:05,462 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2.jar
2022-09-09 11:53:05,618 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1.jar
2022-09-09 11:53:05,645 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1.jar
2022-09-09 11:53:06,018 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21.jar
2022-09-09 11:53:06,186 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2.jar
2022-09-09 11:53:06,218 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21.jar
2022-09-09 11:53:06,617 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1.jar
2022-09-09 11:53:07,188 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1.jar
2022-09-09 11:53:07,188 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1.jar
2022-09-09 11:53:07,188 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21.jar
2022-09-09 11:53:07,383 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1.jar
2022-09-09 11:53:07,392 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64.jar
2022-09-09 11:53:07,995 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1.jar
2022-09-09 11:53:08,009 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1.jar
2022-09-09 11:53:08,009 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2.jar
2022-09-09 11:53:08,011 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2.jar
2022-09-09 11:53:08,670 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64.jar
2022-09-09 11:53:08,670 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21.jar
2022-09-09 11:53:08,670 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64.jar
2022-09-09 11:53:08,720 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1.jar
2022-09-09 11:53:09,313 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21.jar
2022-09-09 11:53:09,738 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64.jar
2022-09-09 11:53:09,745 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64.jar
2022-09-09 11:53:10,498 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1.jar
2022-09-09 11:53:10,498 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1.jar
2022-09-09 11:53:10,828 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64.jar
2022-09-09 11:53:10,828 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1.jar
2022-09-09 11:53:10,985 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21.jar
2022-09-09 11:53:11,034 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1.jar
2022-09-09 11:53:11,149 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1.jar
2022-09-09 11:53:11,172 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21.jar
2022-09-09 11:53:11,217 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11.jar
2022-09-09 11:53:11,306 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21.jar
2022-09-09 11:53:11,687 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21.jar
2022-09-09 11:53:11,687 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21.jar
2022-09-09 11:53:11,901 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1.jar
2022-09-09 11:53:11,941 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11.jar
2022-09-09 11:53:12,407 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2.jar
2022-09-09 11:53:12,476 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2.jar
2022-09-09 11:53:12,479 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21.jar
2022-09-09 11:53:12,622 [AetherRepositoryConnector-repo.maven.apache.org-1-4] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21.jar
2022-09-09 11:53:12,634 [AetherRepositoryConnector-repo.maven.apache.org-1-2] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21.jar
2022-09-09 11:53:12,847 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2.jar
2022-09-09 11:53:12,892 [AetherRepositoryConnector-repo.maven.apache.org-1-3] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2.jar
2022-09-09 11:53:13,090 [AetherRepositoryConnector-repo.maven.apache.org-1-1] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2.jar
2022-09-09 11:53:13,241 [AetherRepositoryConnector-repo.maven.apache.org-1-0] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2.jar
2022-09-09 11:53:13,474 [Worker-11: Building] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:53:14,328 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:53:14,328 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:53:14,331 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:53:14,332 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:53:14,335 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:53:14,335 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:53:14,335 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:53:16,020 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:53:16,020 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:53:16,028 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-09 11:53:16,041 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:53:16,043 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:53:16,043 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:53:16,044 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:53:16,057 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1-sources.jar
2022-09-09 11:53:16,403 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-data-jpa/2.7.1/spring-boot-starter-data-jpa-2.7.1-sources.jar
2022-09-09 11:53:16,406 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-data-jpa:2.7.1
2022-09-09 11:53:17,192 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1-sources.jar
2022-09-09 11:53:17,595 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-aop/2.7.1/spring-boot-starter-aop-2.7.1-sources.jar
2022-09-09 11:53:17,617 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-aop:2.7.1
2022-09-09 11:53:18,441 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1-sources.jar
2022-09-09 11:53:18,849 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-jdbc/2.7.1/spring-boot-starter-jdbc-2.7.1-sources.jar
2022-09-09 11:53:18,856 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-jdbc:2.7.1
2022-09-09 11:53:19,550 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21-sources.jar
2022-09-09 11:53:20,669 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/5.3.21/spring-jdbc-5.3.21-sources.jar
2022-09-09 11:53:20,684 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-jdbc:5.3.21
2022-09-09 11:53:21,464 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11-sources.jar
2022-09-09 11:53:22,860 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.12.11/byte-buddy-1.12.11-sources.jar
2022-09-09 11:53:22,867 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for net.bytebuddy:byte-buddy:1.12.11
2022-09-09 11:53:23,613 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1-sources.jar
2022-09-09 11:53:24,608 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-jpa/2.7.1/spring-data-jpa-2.7.1-sources.jar
2022-09-09 11:53:24,611 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.data:spring-data-jpa:2.7.1
2022-09-09 11:53:25,439 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1-sources.jar
2022-09-09 11:53:26,813 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/data/spring-data-commons/2.7.1/spring-data-commons-2.7.1-sources.jar
2022-09-09 11:53:26,821 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.data:spring-data-commons:2.7.1
2022-09-09 11:53:27,604 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21-sources.jar
2022-09-09 11:53:28,455 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-orm/5.3.21/spring-orm-5.3.21-sources.jar
2022-09-09 11:53:28,478 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-orm:5.3.21
2022-09-09 11:53:29,265 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21-sources.jar
2022-09-09 11:53:30,652 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-context/5.3.21/spring-context-5.3.21-sources.jar
2022-09-09 11:53:30,654 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-context:5.3.21
2022-09-09 11:53:31,431 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21-sources.jar
2022-09-09 11:53:32,446 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-tx/5.3.21/spring-tx-5.3.21-sources.jar
2022-09-09 11:53:32,472 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-tx:5.3.21
2022-09-09 11:53:33,265 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21-sources.jar
2022-09-09 11:53:34,540 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-beans/5.3.21/spring-beans-5.3.21-sources.jar
2022-09-09 11:53:34,551 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-beans:5.3.21
2022-09-09 11:53:35,269 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21-sources.jar
2022-09-09 11:53:35,665 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aspects/5.3.21/spring-aspects-5.3.21-sources.jar
2022-09-09 11:53:35,673 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-aspects:5.3.21
2022-09-09 11:53:36,469 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1-sources.jar
2022-09-09 11:53:36,881 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-security/2.7.1/spring-boot-starter-security-2.7.1-sources.jar
2022-09-09 11:53:36,904 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-security:2.7.1
2022-09-09 11:53:37,655 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1-sources.jar
2022-09-09 11:53:38,018 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter/2.7.1/spring-boot-starter-2.7.1-sources.jar
2022-09-09 11:53:38,042 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter:2.7.1
2022-09-09 11:53:38,760 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1-sources.jar
2022-09-09 11:53:40,070 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot/2.7.1/spring-boot-2.7.1-sources.jar
2022-09-09 11:53:40,074 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot:2.7.1
2022-09-09 11:53:40,871 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1-sources.jar
2022-09-09 11:53:42,268 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-autoconfigure/2.7.1/spring-boot-autoconfigure-2.7.1-sources.jar
2022-09-09 11:53:42,276 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-autoconfigure:2.7.1
2022-09-09 11:53:42,978 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1-sources.jar
2022-09-09 11:53:43,343 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-logging/2.7.1/spring-boot-starter-logging-2.7.1-sources.jar
2022-09-09 11:53:43,355 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-logging:2.7.1
2022-09-09 11:53:44,129 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21-sources.jar
2022-09-09 11:53:45,154 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-aop/5.3.21/spring-aop-5.3.21-sources.jar
2022-09-09 11:53:45,159 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-aop:5.3.21
2022-09-09 11:53:45,949 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2-sources.jar
2022-09-09 11:53:49,173 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-config/5.7.2/spring-security-config-5.7.2-sources.jar
2022-09-09 11:53:49,176 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-config:5.7.2
2022-09-09 11:53:50,046 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2-sources.jar
2022-09-09 11:53:51,425 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-web/5.7.2/spring-security-web-5.7.2-sources.jar
2022-09-09 11:53:51,440 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-web:5.7.2
2022-09-09 11:53:52,252 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21-sources.jar
2022-09-09 11:53:53,349 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-expression/5.3.21/spring-expression-5.3.21-sources.jar
2022-09-09 11:53:53,357 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-expression:5.3.21
2022-09-09 11:53:54,130 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1-sources.jar
2022-09-09 11:53:54,567 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-web/2.7.1/spring-boot-starter-web-2.7.1-sources.jar
2022-09-09 11:53:54,570 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-web:2.7.1
2022-09-09 11:53:55,357 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1-sources.jar
2022-09-09 11:53:55,768 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-json/2.7.1/spring-boot-starter-json-2.7.1-sources.jar
2022-09-09 11:53:55,773 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-json:2.7.1
2022-09-09 11:53:56,631 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1-sources.jar
2022-09-09 11:53:57,063 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-tomcat/2.7.1/spring-boot-starter-tomcat-2.7.1-sources.jar
2022-09-09 11:53:57,077 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-tomcat:2.7.1
2022-09-09 11:53:57,887 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64-sources.jar
2022-09-09 11:54:01,371 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-core/9.0.64/tomcat-embed-core-9.0.64-sources.jar
2022-09-09 11:54:01,389 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-core:9.0.64
2022-09-09 11:54:02,156 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64-sources.jar
2022-09-09 11:54:03,003 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-el/9.0.64/tomcat-embed-el-9.0.64-sources.jar
2022-09-09 11:54:03,005 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-el:9.0.64
2022-09-09 11:54:03,732 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64-sources.jar
2022-09-09 11:54:04,562 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.64/tomcat-embed-websocket-9.0.64-sources.jar
2022-09-09 11:54:04,577 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.apache.tomcat.embed:tomcat-embed-websocket:9.0.64
2022-09-09 11:54:05,347 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21-sources.jar
2022-09-09 11:54:07,054 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-web/5.3.21/spring-web-5.3.21-sources.jar
2022-09-09 11:54:07,059 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-web:5.3.21
2022-09-09 11:54:07,812 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21-sources.jar
2022-09-09 11:54:09,909 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/5.3.21/spring-webmvc-5.3.21-sources.jar
2022-09-09 11:54:09,920 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-webmvc:5.3.21
2022-09-09 11:54:10,674 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1-sources.jar
2022-09-09 11:54:11,056 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-test/2.7.1/spring-boot-starter-test-2.7.1-sources.jar
2022-09-09 11:54:11,059 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-starter-test:2.7.1
2022-09-09 11:54:11,890 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1-sources.jar
2022-09-09 11:54:12,745 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test/2.7.1/spring-boot-test-2.7.1-sources.jar
2022-09-09 11:54:12,761 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-test:2.7.1
2022-09-09 11:54:13,500 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1-sources.jar
2022-09-09 11:54:14,335 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-test-autoconfigure/2.7.1/spring-boot-test-autoconfigure-2.7.1-sources.jar
2022-09-09 11:54:14,344 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.boot:spring-boot-test-autoconfigure:2.7.1
2022-09-09 11:54:15,209 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11-sources.jar
2022-09-09 11:54:16,145 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.12.11/byte-buddy-agent-1.12.11-sources.jar
2022-09-09 11:54:16,156 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for net.bytebuddy:byte-buddy-agent:1.12.11
2022-09-09 11:54:16,923 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21-sources.jar
2022-09-09 11:54:18,976 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.3.21/spring-core-5.3.21-sources.jar
2022-09-09 11:54:18,997 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-core:5.3.21
2022-09-09 11:54:19,808 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21-sources.jar
2022-09-09 11:54:20,194 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-jcl/5.3.21/spring-jcl-5.3.21-sources.jar
2022-09-09 11:54:20,197 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-jcl:5.3.21
2022-09-09 11:54:21,004 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21-sources.jar
2022-09-09 11:54:22,388 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/spring-test/5.3.21/spring-test-5.3.21-sources.jar
2022-09-09 11:54:22,392 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework:spring-test:5.3.21
2022-09-09 11:54:23,091 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2-sources.jar
2022-09-09 11:54:23,526 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-test/5.7.2/spring-security-test-5.7.2-sources.jar
2022-09-09 11:54:23,534 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-test:5.7.2
2022-09-09 11:54:24,339 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2-sources.jar
2022-09-09 11:54:26,083 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-core/5.7.2/spring-security-core-5.7.2-sources.jar
2022-09-09 11:54:26,105 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-core:5.7.2
2022-09-09 11:54:26,902 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloading https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2-sources.jar
2022-09-09 11:54:27,514 [Worker-15: Download sources and javadoc] INFO o.e.m.c.i.e.AbstractTransferListenerAdapter - Downloaded https://repo.maven.apache.org/maven2/org/springframework/security/spring-security-crypto/5.7.2/spring-security-crypto-5.7.2-sources.jar
2022-09-09 11:54:27,540 [Worker-15: Download sources and javadoc] INFO o.e.m.j.internal.DownloadSourcesJob - Downloaded sources for org.springframework.security:spring-security-crypto:5.7.2
2022-09-09 11:54:28,582 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:54:28,582 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:54:28,583 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:54:28,583 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:54:28,586 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:54:28,586 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:54:28,587 [Worker-16: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:56:48,449 [Worker-6: Building] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:56:49,090 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:56:49,091 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:56:49,093 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:56:49,093 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:56:49,096 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:56:49,096 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:56:49,096 [Worker-6: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-09 11:57:10,667 [Worker-11: Updating Maven Project] INFO o.e.m.c.i.p.ProjectConfigurationManager - Update started
2022-09-09 11:57:10,953 [Worker-11: Updating Maven Project] INFO o.e.m.c.i.l.LifecycleMappingFactory - Using org.eclipse.m2e.jdt.JarLifecycleMapping lifecycle mapping for MavenProject: com.desuperior:dsmeta:0.0.1-SNAPSHOT @ C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\pom.xml.
2022-09-09 11:57:11,611 [Worker-11: Updating Maven Project] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding source folder /backend/src/main/java
2022-09-09 11:57:11,612 [Worker-11: Updating Maven Project] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding resource folder /backend/src/main/resources
2022-09-09 11:57:11,612 [Worker-11: Updating Maven Project] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding resource folder /backend/src/main/resources
2022-09-09 11:57:11,613 [Worker-11: Updating Maven Project] INFO o.e.m.j.i.AbstractJavaProjectConfigurator - Adding source folder /backend/src/test/java
2022-09-09 11:57:12,020 [Worker-11: Updating Maven Project] INFO o.e.m.c.i.p.ProjectConfigurationManager - Update completed: 1 sec
2022-09-09 11:57:12,610 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:57:12,610 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:57:12,611 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-09 11:57:12,628 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-09 11:57:12,633 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-09 11:57:12,633 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-09 11:57:12,634 [Worker-11: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:22:56,322 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:22:56,323 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:22:56,326 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:22:56,379 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:22:56,382 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:22:56,382 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:22:56,382 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:22:57,481 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:22:57,481 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:22:57,481 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:22:57,482 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:22:57,484 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:22:57,484 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:22:57,485 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:23:31,132 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:23:31,132 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:23:31,134 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:23:31,141 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:23:31,144 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:23:31,144 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:23:31,144 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:29:59,511 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:29:59,511 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:29:59,513 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:29:59,523 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:29:59,526 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:29:59,526 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:29:59,526 [Worker-32: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:36:17,116 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:36:17,116 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:36:17,118 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:36:17,128 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:36:17,130 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:36:17,130 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:36:17,130 [Worker-30: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:37:24,629 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:37:24,629 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:37:24,631 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:37:24,641 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:37:24,644 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:37:24,644 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:37:24,644 [Worker-33: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:41:34,124 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:41:34,124 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:41:34,126 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:41:34,132 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:41:34,134 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:41:34,134 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:41:34,134 [Worker-36: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:42:32,871 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:42:32,872 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:42:32,878 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:42:32,885 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:42:32,888 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:42:32,889 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:42:32,889 [Worker-39: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:47:12,525 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:47:12,525 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:47:12,525 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:47:12,526 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:47:12,531 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:47:12,531 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:47:12,531 [Worker-15: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:49:16,792 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:49:16,792 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:49:16,793 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 0 resource
2022-09-10 01:49:16,794 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:49:16,803 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:49:16,803 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:49:16,803 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:53:31,455 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:53:31,456 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:53:31,457 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:53:31,469 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:53:31,472 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:53:31,473 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:53:31,473 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 01:54:57,554 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:54:57,554 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:54:57,556 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:54:57,570 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 01:54:57,573 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 01:54:57,574 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 01:54:57,574 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:00:11,919 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:00:11,919 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:00:11,921 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:00:11,932 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:00:11,936 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:00:11,936 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:00:11,936 [Worker-42: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:02:17,429 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:02:17,430 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:02:17,431 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:02:17,440 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:02:17,443 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:02:17,444 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:02:17,444 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:03:25,084 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:03:25,085 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:03:25,086 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:03:25,094 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:03:25,098 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:03:25,098 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:03:25,098 [Worker-51: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:04:16,011 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:04:16,011 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:04:16,012 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:04:16,020 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:04:16,023 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:04:16,023 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:04:16,023 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:05:01,520 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:05:01,521 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:05:01,523 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:05:01,532 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:05:01,535 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:05:01,535 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:05:01,535 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:05:05,121 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:05:05,121 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:05:05,123 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:05:05,131 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:05:05,134 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:05:05,134 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:05:05,134 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:14:39,649 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:14:39,650 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:14:39,651 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:14:39,661 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:14:39,664 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:14:39,664 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:14:39,664 [Worker-60: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:15:08,291 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:15:08,291 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:15:08,293 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:15:08,303 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:15:08,306 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:15:08,306 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:15:08,306 [Worker-59: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:16:21,128 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:16:21,128 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:16:21,130 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:16:21,140 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:16:21,143 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:16:21,143 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:16:21,143 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:16:24,283 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:16:24,283 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:16:24,284 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:16:24,292 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:16:24,294 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:16:24,295 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:16:24,295 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:19:59,904 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:19:59,904 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:19:59,906 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:19:59,915 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:19:59,918 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:19:59,918 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:19:59,919 [Worker-62: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:22:25,395 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:22:25,395 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:22:25,397 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:22:25,411 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:22:25,414 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:22:25,414 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:22:25,414 [Worker-47: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:23:33,550 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:23:33,551 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:23:33,552 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:23:33,568 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:23:33,571 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:23:33,571 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:23:33,571 [Worker-55: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:23:46,782 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:23:46,782 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:23:46,784 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:23:46,792 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:23:46,795 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:23:46,795 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:23:46,795 [Worker-59: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:26:00,785 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:26:00,786 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:26:00,788 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:26:00,798 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:26:00,800 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:26:00,800 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:26:00,800 [Worker-64: Building] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:26:12,137 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:26:12,137 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:26:12,139 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:26:12,150 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
2022-09-10 02:26:12,154 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:26:12,154 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:26:12,154 [Worker-66: Launching backend - DsmetaApplication] INFO o.e.m.c.i.embedder.EclipseLogger - skip non existing resourceDirectory C:\Users\User\dev\projetos_devsuperiorMetas\dsmetas\backend\src\test\resources
2022-09-10 02:37:29,742 [Worker-63: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered resources.
2022-09-10 02:37:29,743 [Worker-63: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Using 'UTF-8' encoding to copy filtered properties files.
2022-09-10 02:37:29,744 [Worker-63: Building] INFO o.e.m.c.i.embedder.EclipseLogger - Copying 1 resource
================================================
FILE: example-logs/example3
================================================
2015-04-22 01:46:08.399 [http-bio-8880-exec-2439] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[order-funnel-instance:browser]-{"EventName":"INITIAL_PRODUCT_OFFER","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"41694fc7-b6ff-4965-bcf3-5bf489b7a431","Logger":"AuditController","param_ipAddress":"184.166.70.190","param_referer":"https://shop.equifax.com/orderfunnel/b6dea8aa-0bf2-44a8-a348-3de4849fe4bb/AB21051B-C677-4CDD-ABD7-47B990CC0A7B/?legacy=PSb15upd02_bplanr&campaign=BPLAN1795&product=PSb15upd02_bplanr&source=equifaxComplete%2FEquifax&mboxSession=1429666888006-441925&s_tnt=282656:1:0","Offer":"AB21051B-C677-4CDD-ABD7-47B990CC0A7B","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667168398","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, Collect_Wallet_Data page, browser event -\nInitial Product: BPLAN, Initial Offer: 4.95","param_userAgent":"Mozilla/5.0 (iPad; CPU OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4","Locale":"English (United States)","EventType":"USER_INTERACTION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667168398","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_cartDisplayedOffers":"[]","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:08.788 [http-bio-8880-exec-2439] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[order-funnel-instance:browser]-{"EventName":"ORDER_FUNNEL_START","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"2fa606d3-fe5c-4856-b880-24ffbc7666f3","Logger":"AuditController","param_ipAddress":"184.166.70.190","param_referer":"https://shop.equifax.com/orderfunnel/b6dea8aa-0bf2-44a8-a348-3de4849fe4bb/AB21051B-C677-4CDD-ABD7-47B990CC0A7B/?legacy=PSb15upd02_bplanr&campaign=BPLAN1795&product=PSb15upd02_bplanr&source=equifaxComplete%2FEquifax&mboxSession=1429666888006-441925&s_tnt=282656:1:0","Offer":"AB21051B-C677-4CDD-ABD7-47B990CC0A7B","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667168787","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, step 0. Funnel instance:\nb6dea8aa-0bf2-44a8-a348-3de4849fe4bb. Offer: AB21051B-C677-4CDD-ABD7-47B990CC0A7B","param_userAgent":"Mozilla/5.0 (iPad; CPU OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4","Locale":"English (United States)","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667168787","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:23.886 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=9B5CE1A1F9C6EABC088D045C572925C4, ExperienceId=09B2F40E-874D-4EC2-A8C9-DF696C28241B]-[order-funnel-instance:browser]-{"EventName":"ORDER_FUNNEL_SSN_ON_BLUR","SessionId":"9B5CE1A1F9C6EABC088D045C572925C4","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"37c14fcf-02aa-44ee-887d-dd7c725b12c7","Logger":"AuditController","param_ipAddress":"67.83.182.203","param_referer":"https://shop.equifax.com/orderfunnel/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429666524218-314159&s_tnt=185050:1:0","Offer":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667183885","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, Create Account page, browser event - Focus\nhas left the input-uid input field.","param_userAgent":"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; MAARJS; rv:11.0) like Gecko","Locale":"English (United States)","EventType":"USER_INTERACTION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667183886","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"09B2F40E-874D-4EC2-A8C9-DF696C28241B","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:24.836 [http-bio-8880-exec-2427] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"65f6c056-8433-461b-a334-90103a4b0096","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667184824","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667184835","Layer":"rest-client","TransactionId":"0b441f8b-0ded-4070-8a69-c8931b5975c1","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"184.166.70.190","CustomerKey":"unknown"}
2015-04-22 01:46:24.836 [http-bio-8880-exec-2427] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"65f6c056-8433-461b-a334-90103a4b0096","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667184824","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667184836","Layer":"rest-client","TransactionId":"0b441f8b-0ded-4070-8a69-c8931b5975c1","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"184.166.70.190","CustomerKey":"unknown"}
2015-04-22 01:46:25.145 [http-bio-8880-exec-2427] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"65f6c056-8433-461b-a334-90103a4b0096","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667184824","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667185145","Layer":"rest-client","TransactionId":"0b441f8b-0ded-4070-8a69-c8931b5975c1","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"184.166.70.190","CustomerKey":"unknown"}
2015-04-22 01:46:25.151 [http-bio-8880-exec-2427] ERROR org.apache.velocity.runtime.log.Log4JLogChute-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[]-Left side ($Integer.parseInt($duration)) of '>' operation has null value at logTag[line 1, column 373]
2015-04-22 01:46:25.152 [http-bio-8880-exec-2427] ERROR org.apache.velocity.runtime.log.Log4JLogChute-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[]-Left side ($Integer.parseInt($duration)) of '>' operation has null value at logTag[line 1, column 373]
2015-04-22 01:46:25.155 [http-bio-8880-exec-2427] ERROR org.apache.velocity.runtime.log.Log4JLogChute-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[]-Left side ($Integer.parseInt($duration)) of '>' operation has null value at logTag[line 1, column 373]
2015-04-22 01:46:25.157 [http-bio-8880-exec-2427] ERROR org.apache.velocity.runtime.log.Log4JLogChute-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[]-Left side ($Integer.parseInt($duration)) of '>' operation has null value at logTag[line 1, column 373]
2015-04-22 01:46:25.158 [http-bio-8880-exec-2427] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_PAGE_CHANGE","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"Web","UserAgent":"Mozilla/5.0 (iPad; CPU OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4","EventId":"8e5e3482-245a-4e53-9506-bf4e6d176e7d","param_ChangeEndOrderContext":"efa74269-9777-4b49-8bc5-8a8fee2bce3eCollect_Wallet_Dataworkflow2.05217128UI5217086","Logger":"OrderfunnelProcessController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"PSb15upd02","param_InstanceGuid":"b6dea8aa-0bf2-44a8-a348-3de4849fe4bb","param_ChangeEndStep":"Collect_Wallet_Data","AppName":"Orderfunnel","StartTime":"1429667185158","Version":"1.0","Partner":"EFX","Tenant":"US","param_ChangeStartStep":"BEGIN","Domain":"order-funnel","Product":"AB21051B-C677-4CDD-ABD7-47B990CC0A7B","Machine":"aptp2lc9a001","param_Extrinsics":"{product=PSb15upd02_bplanr, EXPERIENCE_ID=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12, source=equifaxComplete/Equifax, mboxSession=1429666888006-441925, campaign=BPLAN1795, s_tnt=282656:1:0#/personal-information, legacy=PSb15upd02_bplanr}","param_LegacyParam":"PSb15upd02_bplanr","param_TemplateName":"USLegacyPlusTemplate","Locale":"en_US","EventType":"ORDER_ENTRY","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667185158","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_ChangeEndStatus":"WAITING","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"184.166.70.190","param_ChangeStartOrderContext":"BEGIN","CustomerKey":"unknown"}
2015-04-22 01:46:25.373 [http-bio-8880-exec-2422] INFO com.efx.pet.AUDIT_EVENT-[SessionId=E621EC9A3144227E7B9A35DF98F1A0CF, ExperienceId=5CEE0119-3B40-4C92-8E90-5D9E52E0DD12]-[order-funnel-instance:browser]-{"EventName":"INITIAL_PRODUCT_OFFER","SessionId":"E621EC9A3144227E7B9A35DF98F1A0CF","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"9a8d7342-369c-4dfa-b5ad-be8065028b6f","Logger":"AuditController","param_ipAddress":"184.166.70.190","param_referer":"https://shop.equifax.com/orderfunnel/b6dea8aa-0bf2-44a8-a348-3de4849fe4bb/AB21051B-C677-4CDD-ABD7-47B990CC0A7B/?legacy=PSb15upd02_bplanr&campaign=BPLAN1795&product=PSb15upd02_bplanr&source=equifaxComplete%2FEquifax&mboxSession=1429666888006-441925&s_tnt=282656:1:0","Offer":"AB21051B-C677-4CDD-ABD7-47B990CC0A7B","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667185373","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, Collect_Wallet_Data page, browser event -\nInitial Product: BPLAN, Initial Offer: 4.95","param_userAgent":"Mozilla/5.0 (iPad; CPU OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4","Locale":"English (United States)","EventType":"USER_INTERACTION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667185373","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_cartDisplayedOffers":"[]","Division":"DOMAIN2","ExperienceId":"5CEE0119-3B40-4C92-8E90-5D9E52E0DD12","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:52.687 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"BEGIN","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"dda90300-4640-4111-8750-efd01f184df7","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667212687","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667212687","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667212687","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:52.699 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"abf2fb36-790f-476e-bbaa-bdb23d4072be","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667212688","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667212698","Layer":"service-client","TransactionId":"b1b64243-0c5a-47e5-9ca8-9f7a235637a2","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:52.699 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"abf2fb36-790f-476e-bbaa-bdb23d4072be","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667212688","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667212699","Layer":"service-client","TransactionId":"b1b64243-0c5a-47e5-9ca8-9f7a235637a2","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:52.723 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"abf2fb36-790f-476e-bbaa-bdb23d4072be","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667212688","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667212723","Layer":"service-client","TransactionId":"b1b64243-0c5a-47e5-9ca8-9f7a235637a2","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:52.725 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"dda90300-4640-4111-8750-efd01f184df7","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667212687","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667212724","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667212724","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:52.729 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_START","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"BEGIN","Brand":"EFX","Channel":"Web","param_FunnelInitContext":"guid: 7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b template: USLegacyPlusTemplate lastUpdate: null","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"2966e501-f6cc-4b98-beba-b2fb04dfb439","Logger":"OrderfunnelInstanceController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"W14upd11","param_InstanceGuid":"7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b","AppName":"Orderfunnel","StartTime":"1429667212728","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"order-funnel","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","param_Extrinsics":"{product=W14upd11_uplanr, EXPERIENCE_ID=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B, source=HomePage, mboxSession=1429667153917-16609, campaign=UPLAN1995, s_tnt=185050:1:0#/personal-information, legacy=W14upd11_uplanr}","param_LegacyParam":"W14upd11_uplanr","param_TemplateName":"USLegacyPlusTemplate","param_PropositionUrl":"http://shop.equifax.com/orderfunnel/US/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429667153917-16609&s_tnt=185050:1:0#/personal-information","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667212728","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:54.009 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ba9fa2e7-55e4-49e8-b482-d3510f980531","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667213997","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214008","Layer":"service-client","TransactionId":"6313cfbb-efa9-487d-8dd5-9c5bbc02c843","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.009 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ba9fa2e7-55e4-49e8-b482-d3510f980531","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667213997","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214009","Layer":"service-client","TransactionId":"6313cfbb-efa9-487d-8dd5-9c5bbc02c843","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.035 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ba9fa2e7-55e4-49e8-b482-d3510f980531","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667213997","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214034","Layer":"service-client","TransactionId":"6313cfbb-efa9-487d-8dd5-9c5bbc02c843","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.047 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"9b18611f-a3fa-436f-9bad-6f4994b921ed","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214036","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214046","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.047 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"9b18611f-a3fa-436f-9bad-6f4994b921ed","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214036","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214047","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.068 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"9b18611f-a3fa-436f-9bad-6f4994b921ed","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214036","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214067","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.079 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ff7634e1-0922-427c-b399-9e73c9e9e594","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214069","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214079","Layer":"service-client","TransactionId":"445f1d8a-2bf9-4512-baaf-e6778d3337e9","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.080 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ff7634e1-0922-427c-b399-9e73c9e9e594","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214069","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214080","Layer":"service-client","TransactionId":"445f1d8a-2bf9-4512-baaf-e6778d3337e9","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.113 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ff7634e1-0922-427c-b399-9e73c9e9e594","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214069","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214113","Layer":"service-client","TransactionId":"445f1d8a-2bf9-4512-baaf-e6778d3337e9","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.125 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"36ee3412-8f63-4eb6-9531-6f61d659a1ff","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214114","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214124","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.125 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"36ee3412-8f63-4eb6-9531-6f61d659a1ff","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214114","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214125","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:54.157 [http-bio-8880-exec-2423] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"36ee3412-8f63-4eb6-9531-6f61d659a1ff","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667214114","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667214157","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:57.034 [http-bio-8880-exec-2452] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"7e7b4c74-a333-4a83-aecf-2d39a91b7da5","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667217023","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667217034","Layer":"rest-client","TransactionId":"8ac61172-c30a-4112-ac0b-b6d49cea311d","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:57.036 [http-bio-8880-exec-2452] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"7e7b4c74-a333-4a83-aecf-2d39a91b7da5","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667217023","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667217034","Layer":"rest-client","TransactionId":"8ac61172-c30a-4112-ac0b-b6d49cea311d","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:57.275 [http-bio-8880-exec-2452] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"7e7b4c74-a333-4a83-aecf-2d39a91b7da5","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667217023","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667217275","Layer":"rest-client","TransactionId":"8ac61172-c30a-4112-ac0b-b6d49cea311d","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","CustomerKey":"unknown"}
2015-04-22 01:46:57.281 [http-bio-8880-exec-2452] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_PAGE_CHANGE","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"Web","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"5ad95d51-110b-46b3-a5bf-a4fefeb624a3","param_ChangeEndOrderContext":"84a47e2e-e76b-41fd-a1e7-f43e2c0a4fb9Collect_Wallet_Dataworkflow2.05217177UI5217135","Logger":"OrderfunnelProcessController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"W14upd11","param_InstanceGuid":"7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b","param_ChangeEndStep":"Collect_Wallet_Data","AppName":"Orderfunnel","StartTime":"1429667217281","Version":"1.0","Partner":"EFX","Tenant":"US","param_ChangeStartStep":"BEGIN","Domain":"order-funnel","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","param_Extrinsics":"{product=W14upd11_uplanr, EXPERIENCE_ID=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B, source=HomePage, mboxSession=1429667153917-16609, campaign=UPLAN1995, s_tnt=185050:1:0#/personal-information, legacy=W14upd11_uplanr}","param_LegacyParam":"W14upd11_uplanr","param_TemplateName":"USLegacyPlusTemplate","Locale":"en_US","EventType":"ORDER_ENTRY","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667217281","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_ChangeEndStatus":"WAITING","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"181.188.111.98","param_ChangeStartOrderContext":"BEGIN","CustomerKey":"unknown"}
2015-04-22 01:46:57.867 [http-bio-8880-exec-2420] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:browser]-{"EventName":"ORDER_FUNNEL_START","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"e01d1f4a-8286-452e-84b4-4716b43dda29","Logger":"AuditController","param_ipAddress":"181.188.111.98","param_referer":"https://shop.equifax.com/orderfunnel/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429667153917-16609&s_tnt=185050:1:0","Offer":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667217866","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, step 0. Funnel instance:\n7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b. Offer: E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","param_userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Locale":"English (United States)","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667217866","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:46:57.868 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=A0A36888E9042D2E72A16E1DE4065F89, ExperienceId=1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B]-[order-funnel-instance:browser]-{"EventName":"INITIAL_PRODUCT_OFFER","SessionId":"A0A36888E9042D2E72A16E1DE4065F89","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"c342aa0e-e4d5-4dc6-9f8f-a82b381f1148","Logger":"AuditController","param_ipAddress":"181.188.111.98","param_referer":"https://shop.equifax.com/orderfunnel/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429667153917-16609&s_tnt=185050:1:0","Offer":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667217868","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, Collect_Wallet_Data page, browser event -\nInitial Product: UPLAN, Initial Offer: 19.95","param_userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Locale":"English (United States)","EventType":"USER_INTERACTION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667217868","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_cartDisplayedOffers":"[]","Division":"DOMAIN2","ExperienceId":"1C7A99BA-ABDD-4A4D-BD11-44EAAB548C0B","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:47:07.185 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"BEGIN","Brand":"EFX","Channel":"Service","UserAgent":"Wget/1.11.4","EventId":"ffc5013e-305a-44df-802d-49afe989b28b","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667227185","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667227185","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667227185","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:47:07.197 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ee2adfa5-8751-42c4-81ae-df72f2853d21","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667227185","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667227196","Layer":"service-client","TransactionId":"a400cfdb-333b-4687-b4e2-fcad0ac3f9a7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:47:07.197 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ee2adfa5-8751-42c4-81ae-df72f2853d21","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667227185","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667227197","Layer":"service-client","TransactionId":"a400cfdb-333b-4687-b4e2-fcad0ac3f9a7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:47:07.225 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ee2adfa5-8751-42c4-81ae-df72f2853d21","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667227185","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667227224","Layer":"service-client","TransactionId":"a400cfdb-333b-4687-b4e2-fcad0ac3f9a7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:47:07.226 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"Service","UserAgent":"Wget/1.11.4","EventId":"ffc5013e-305a-44df-802d-49afe989b28b","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667227185","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667227225","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667227225","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:47:07.230 [http-bio-8880-exec-2437] INFO com.efx.pet.AUDIT_EVENT-[SessionId=2F9089F20D940E85422CC7F8AD338BE0, ExperienceId=]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_START","SessionId":"2F9089F20D940E85422CC7F8AD338BE0","EventStatus":"BEGIN","Brand":"EFX","Channel":"Web","param_FunnelInitContext":"guid: f1180768-373f-41ae-b42d-d0c81f0aeb39 template: USFourStepTemplate lastUpdate: null","UserAgent":"Wget/1.11.4","EventId":"2dd641b0-027c-4bfd-ab9d-f5ba6630c6fb","Logger":"OrderfunnelInstanceController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_InstanceGuid":"f1180768-373f-41ae-b42d-d0c81f0aeb39","AppName":"Orderfunnel","StartTime":"1429667227229","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"order-funnel","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","param_Extrinsics":"{EXPERIENCE_ID=70A3636C-7DA0-47AC-81ED-78D308B8B7F2}","param_TemplateName":"USFourStepTemplate","param_PropositionUrl":"http://aptp2lc9a001.app.c9.equifax.com:8880/orderfunnel/US/f1180768-373f-41ae-b42d-d0c81f0aeb39/C7B4477E-4CCB-41F2-AB14-4F6B76372412/","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667227229","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.318 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"BEGIN","Brand":"EFX","Channel":"Service","UserAgent":"Wget/1.11.4","EventId":"a74a3760-168f-4c96-ac48-74a08d6b75d8","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667287317","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667287317","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667287317","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.329 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a34f0262-90f8-4d54-96ab-02fa1b6a8e8b","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667287318","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667287329","Layer":"service-client","TransactionId":"9010d943-e6b4-49b1-9e0a-1df8326d6be0","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.330 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a34f0262-90f8-4d54-96ab-02fa1b6a8e8b","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667287318","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667287329","Layer":"service-client","TransactionId":"9010d943-e6b4-49b1-9e0a-1df8326d6be0","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.357 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a34f0262-90f8-4d54-96ab-02fa1b6a8e8b","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667287318","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667287357","Layer":"service-client","TransactionId":"9010d943-e6b4-49b1-9e0a-1df8326d6be0","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.358 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"Service","UserAgent":"Wget/1.11.4","EventId":"a74a3760-168f-4c96-ac48-74a08d6b75d8","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667287317","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667287358","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667287358","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:07.362 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=DDDE230A48A3E17C3649D68936F97FDB, ExperienceId=]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_START","SessionId":"DDDE230A48A3E17C3649D68936F97FDB","EventStatus":"BEGIN","Brand":"EFX","Channel":"Web","param_FunnelInitContext":"guid: f1180768-373f-41ae-b42d-d0c81f0aeb39 template: USFourStepTemplate lastUpdate: null","UserAgent":"Wget/1.11.4","EventId":"2a1f7041-d283-42e0-a4d2-6aeb435702d5","Logger":"OrderfunnelInstanceController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_InstanceGuid":"f1180768-373f-41ae-b42d-d0c81f0aeb39","AppName":"Orderfunnel","StartTime":"1429667287362","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"order-funnel","Product":"C7B4477E-4CCB-41F2-AB14-4F6B76372412","Machine":"aptp2lc9a001","param_Extrinsics":"{EXPERIENCE_ID=C3998066-1648-40C3-A48E-3396FA4DD075}","param_TemplateName":"USFourStepTemplate","param_PropositionUrl":"http://aptp2lc9a001.app.c9.equifax.com:8880/orderfunnel/US/f1180768-373f-41ae-b42d-d0c81f0aeb39/C7B4477E-4CCB-41F2-AB14-4F6B76372412/","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667287362","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"172.25.28.35","CustomerKey":"unknown"}
2015-04-22 01:48:54.985 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"BEGIN","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"41a7e8a4-198e-40c5-acc3-b5a87cbd0e94","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667334984","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667334984","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667334984","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:54.996 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"2eb09fea-2565-4cd2-abfe-f74e15183a3d","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667334985","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667334996","Layer":"service-client","TransactionId":"0de210e0-4891-4139-beba-46f18fa790ea","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:54.997 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"2eb09fea-2565-4cd2-abfe-f74e15183a3d","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667334985","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667334997","Layer":"service-client","TransactionId":"0de210e0-4891-4139-beba-46f18fa790ea","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:55.024 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"2eb09fea-2565-4cd2-abfe-f74e15183a3d","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667334985","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335023","Layer":"service-client","TransactionId":"0de210e0-4891-4139-beba-46f18fa790ea","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:55.024 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"41a7e8a4-198e-40c5-acc3-b5a87cbd0e94","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667334984","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667335024","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667335024","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:55.028 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_START","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"BEGIN","Brand":"EFX","Channel":"Web","param_FunnelInitContext":"guid: 7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b template: USLegacyPlusTemplate lastUpdate: null","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"43992979-6490-46bf-a5fd-54b2dbe9363f","Logger":"OrderfunnelInstanceController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"W14upd11","param_InstanceGuid":"7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b","AppName":"Orderfunnel","StartTime":"1429667335028","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"order-funnel","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","param_Extrinsics":"{product=W14upd11_uplanr, EXPERIENCE_ID=DDBA4216-0128-450C-9F9F-39FD59D79BE4, source=HomePage, mboxSession=1429666112700-901115, campaign=UPLAN1995, s_tnt=185050:1:0#/personal-information, legacy=W14upd11_uplanr}","param_LegacyParam":"W14upd11_uplanr","param_TemplateName":"USLegacyPlusTemplate","param_PropositionUrl":"http://shop.equifax.com/orderfunnel/US/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429666112700-901115&s_tnt=185050:1:0#/personal-information","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667335028","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:55.400 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"13567e0a-5e3f-4108-9d9b-824e461ede78","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335389","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335399","Layer":"service-client","TransactionId":"767504bc-f50b-4935-8c12-6e04a9130f83","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.400 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"13567e0a-5e3f-4108-9d9b-824e461ede78","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335389","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335400","Layer":"service-client","TransactionId":"767504bc-f50b-4935-8c12-6e04a9130f83","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.425 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"13567e0a-5e3f-4108-9d9b-824e461ede78","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335389","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335425","Layer":"service-client","TransactionId":"767504bc-f50b-4935-8c12-6e04a9130f83","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.437 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ae962b10-2f8f-4338-9a2d-00f4e579f129","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335426","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335436","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.437 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ae962b10-2f8f-4338-9a2d-00f4e579f129","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335426","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335437","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.459 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"ae962b10-2f8f-4338-9a2d-00f4e579f129","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335426","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335458","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.477 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"3d492350-c8f7-48c0-bb35-5219b210a2ca","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335461","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335477","Layer":"service-client","TransactionId":"10cd20d2-c879-4bd8-add6-26d5d20eb239","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.478 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"3d492350-c8f7-48c0-bb35-5219b210a2ca","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335461","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335477","Layer":"service-client","TransactionId":"10cd20d2-c879-4bd8-add6-26d5d20eb239","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.510 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"3d492350-c8f7-48c0-bb35-5219b210a2ca","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335461","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335509","Layer":"service-client","TransactionId":"10cd20d2-c879-4bd8-add6-26d5d20eb239","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.523 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"cbefce23-1307-44b1-b423-e8c3984ee271","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335511","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335522","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.523 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"cbefce23-1307-44b1-b423-e8c3984ee271","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335511","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335523","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:55.544 [http-bio-8880-exec-2450] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-management:service-client]-{"EventName":"ORDER_MANAGEMENT_GET_PRODUCT_OFFER_SET","SessionId":"unknown","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"cbefce23-1307-44b1-b423-e8c3984ee271","Logger":"OrderManagementRestClientImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667335511","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-management","Product":"unknown","Machine":"aptp2lc9a001","Message":"getProductOfferSet","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667335544","Layer":"service-client","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:56.496 [http-bio-8880-exec-2447] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"c603b9c2-f477-40b3-99f6-ceb35dd2fd67","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667336485","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667336495","Layer":"rest-client","TransactionId":"22eae94f-e1f8-4c74-a8c6-629510cc11bc","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"DDBA4216-0128-450C-9F9F-39FD59D79BE4","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:56.496 [http-bio-8880-exec-2447] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"c603b9c2-f477-40b3-99f6-ceb35dd2fd67","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667336485","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667336496","Layer":"rest-client","TransactionId":"22eae94f-e1f8-4c74-a8c6-629510cc11bc","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"DDBA4216-0128-450C-9F9F-39FD59D79BE4","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:56.723 [http-bio-8880-exec-2447] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[workflow-service:rest-client]-{"EventName":"BEGIN","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"c603b9c2-f477-40b3-99f6-ceb35dd2fd67","Logger":"WorkflowRestClient","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667336485","Version":"1.0","Partner":"EFX","Tenant":"US","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"workflow-service","Product":"unknown","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667336723","Layer":"rest-client","TransactionId":"22eae94f-e1f8-4c74-a8c6-629510cc11bc","Env":"PROD","ConversationId":"START_ORDER_FUNNEL_LEGACY_PLUS - initial","Division":"DOMAIN2","ExperienceId":"DDBA4216-0128-450C-9F9F-39FD59D79BE4","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","CustomerKey":"unknown"}
2015-04-22 01:48:56.728 [http-bio-8880-exec-2447] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_PAGE_CHANGE","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"Web","UserAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","EventId":"cc70983e-4658-49aa-b01b-68da04df9a4e","param_ChangeEndOrderContext":"09c5bf4e-f336-4f15-b048-a20946230407Collect_Wallet_Dataworkflow2.05217409UI5217367","Logger":"OrderfunnelProcessController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"W14upd11","param_InstanceGuid":"7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b","param_ChangeEndStep":"Collect_Wallet_Data","AppName":"Orderfunnel","StartTime":"1429667336728","Version":"1.0","Partner":"EFX","Tenant":"US","param_ChangeStartStep":"BEGIN","Domain":"order-funnel","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","param_Extrinsics":"{product=W14upd11_uplanr, EXPERIENCE_ID=DDBA4216-0128-450C-9F9F-39FD59D79BE4, source=HomePage, mboxSession=1429666112700-901115, campaign=UPLAN1995, s_tnt=185050:1:0#/personal-information, legacy=W14upd11_uplanr}","param_LegacyParam":"W14upd11_uplanr","param_TemplateName":"USLegacyPlusTemplate","Locale":"en_US","EventType":"ORDER_ENTRY","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667336728","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_ChangeEndStatus":"WAITING","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"71.75.35.207","param_ChangeStartOrderContext":"BEGIN","CustomerKey":"unknown"}
2015-04-22 01:48:56.847 [http-bio-8880-exec-2448] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:browser]-{"EventName":"ORDER_FUNNEL_START","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"c3a67c10-f6d3-4ec8-9cd9-084472874677","Logger":"AuditController","param_ipAddress":"71.75.35.207","param_referer":"https://shop.equifax.com/orderfunnel/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429666112700-901115&s_tnt=185050:1:0","Offer":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667336846","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, step 0. Funnel instance:\n7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b. Offer: E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","param_userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Locale":"English (United States)","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667336847","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"DDBA4216-0128-450C-9F9F-39FD59D79BE4","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:56.849 [http-bio-8880-exec-2446] INFO com.efx.pet.AUDIT_EVENT-[SessionId=943A59749B3AD868435411680B0B6F82, ExperienceId=DDBA4216-0128-450C-9F9F-39FD59D79BE4]-[order-funnel-instance:browser]-{"EventName":"INITIAL_PRODUCT_OFFER","SessionId":"943A59749B3AD868435411680B0B6F82","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"f93ac6c1-04ed-4ffa-98ab-809a50e2f9a5","Logger":"AuditController","param_ipAddress":"71.75.35.207","param_referer":"https://shop.equifax.com/orderfunnel/7b5b72a0-a7cd-45e4-8008-cf4d3c08d61b/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429666112700-901115&s_tnt=185050:1:0","Offer":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667336848","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"US Four-Step Legacy Plus, Collect_Wallet_Data page, browser event -\nInitial Product: UPLAN, Initial Offer: 19.95","param_userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko","Locale":"English (United States)","EventType":"USER_INTERACTION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667336849","Layer":"browser","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","param_cartDisplayedOffers":"[]","Division":"DOMAIN2","ExperienceId":"DDBA4216-0128-450C-9F9F-39FD59D79BE4","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:58.175 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"BEGIN","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36","EventId":"aff11b9f-2273-4072-b88a-298c68a371b6","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667338174","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667338174","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667338174","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.201 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a13e9636-ca65-4da6-9f57-b4794c532878","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667338175","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667338186","Layer":"service-client","TransactionId":"58611d9f-bcc1-4dad-a3b9-e6119282dea7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.201 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"IN_PROGRESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a13e9636-ca65-4da6-9f57-b4794c532878","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667338175","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667338201","Layer":"service-client","TransactionId":"58611d9f-bcc1-4dad-a3b9-e6119282dea7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.230 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"a13e9636-ca65-4da6-9f57-b4794c532878","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667338175","Version":"1.0","Partner":"EFX","Tenant":"EFX","Reason":"StratusRestXmlClientBase: onCall: Connect","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667338230","Layer":"service-client","TransactionId":"58611d9f-bcc1-4dad-a3b9-e6119282dea7","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.231 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[aof-instance:substrate-service]-{"EventName":"FIND_INSTANCE_BY_GUID","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"END_SUCCESS","Brand":"EFX","Channel":"Service","UserAgent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36","EventId":"aff11b9f-2273-4072-b88a-298c68a371b6","Logger":"OrdefunnelInstanceResolverImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"Orderfunnel","StartTime":"1429667338174","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"aof-instance","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667338231","Layer":"substrate-service","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","EndTime":"1429667338231","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.235 [http-bio-8880-exec-2451] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=]-[order-funnel:substrate]-{"EventName":"ORDER_FUNNEL_START","SessionId":"6F1CB2A4F61423F9EFCA412463A8F4B2","EventStatus":"BEGIN","Brand":"EFX","Channel":"Web","param_FunnelInitContext":"guid: f1180768-373f-41ae-b42d-d0c81f0aeb39 template: USFourStepTemplate lastUpdate: null","UserAgent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36","EventId":"946c914b-a7d4-45f8-9c6b-c43c90aa7965","Logger":"OrderfunnelInstanceController","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","param_CSC":"W14upd11","param_InstanceGuid":"f1180768-373f-41ae-b42d-d0c81f0aeb39","AppName":"Orderfunnel","StartTime":"1429667338235","Version":"1.0","Partner":"EFX","Tenant":"US","Domain":"order-funnel","Product":"E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56","Machine":"aptp2lc9a001","param_Extrinsics":"{product=W14upd11_uplanr, EXPERIENCE_ID=E7A9D6E2-1A0B-4F3A-94E3-4138C2B77B65, source=HomePage, mboxSession=1429678125089-546863, campaign=UPLAN1995, s_tnt=185050:2:0#/personal-information, legacy=W14upd11_uplanr}","param_LegacyParam":"W14upd11_uplanr","param_TemplateName":"USFourStepTemplate","param_PropositionUrl":"http://shop.equifax.com/orderfunnel/US/f1180768-373f-41ae-b42d-d0c81f0aeb39/E0FC0E93-20A3-4DE3-9EB2-22A44AB2CF56/?legacy=W14upd11_uplanr&campaign=UPLAN1995&product=W14upd11_uplanr&source=HomePage&mboxSession=1429678125089-546863&s_tnt=185050:2:0#/personal-information","Locale":"en_US","EventType":"ORDER_ENTRY","UserId":"unknown","ModuleName":"Orderfunnel","EffectiveUserId":"unknown","Timestamp":"1429667338235","Layer":"substrate","TransactionId":"unknown","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","Namespace":"ORDERFUNNEL","RemoteAddress":"146.135.4.95","CustomerKey":"unknown"}
2015-04-22 01:48:58.484 [http-bio-8880-exec-2439] INFO com.efx.pet.AUDIT_EVENT-[SessionId=6F1CB2A4F61423F9EFCA412463A8F4B2, ExperienceId=E7A9D6E2-1A0B-4F3A-94E3-4138C2B77B65]-[order-funnel-instance:service-client [ audit-client-error ]]-{"EventName":"ORDER_FUNNEL_INSTANCE_CLIENT_FIND_ORDER_FUNNEL_INSTANCE_BY_GUID","SessionId":"unknown","EventStatus":"BEGIN","Brand":"EFX","Channel":"unknown","UserAgent":"unknown","EventId":"6a4c7fa2-e74e-47ab-ad83-1d25cc718eff","Logger":"OrderFunnelInstanceServiceClientRestImpl","Offer":"EFX","EventLevel":"INFO","Reseller":"EFX","Jvm":"DEFAULT","AppName":"unknown","StartTime":"1429667338473","Version":"1.0","Partner":"EFX","Tenant":"EFX","Domain":"order-funnel-instance","Product":"unknown","Machine":"aptp2lc9a001","Message":"findOrderFunnelInstanceByGuid","Locale":"en_US","EventType":"ADMINISTRATION","UserId":"unknown","ModuleName":"unknown","EffectiveUserId":"unknown","Timestamp":"1429667338483","Layer":"service-client","TransactionId":"5fc6d237-2492-4884-a3a6-deef80a2daf2","Env":"PROD","ConversationId":"unknown","Division":"DOMAIN2","ExperienceId":"unknown","Namespace":"ORDERFUNNEL","RemoteAddress":"unknown","CustomerKey":"unknown"}
2015-04-22 01:48:58.484 [http-bio-8880-exec-2439] INFO com.efx.pet.AUDIT_EVE
================================================
FILE: example-logs/example4
================================================
level=error ts=2022-09-22T07:46:34.171406833Z caller=main.go:129 msg="Starting Loki" version="(version=, branch=, revision=)"
level=warn ts=2022-09-22T07:46:34.171800155Z caller=server.go:239 http=[::]:3100 grpc=[::]:9095 msg="server listening on addresses"
level=debug ts=2022-09-22T07:46:34.172389889Z caller=modules.go:504 msg="RulerStorage is not configured in single binary mode and will not be started."
level=trace ts=2022-09-22T07:46:34.173343577Z caller=shipper_index_client.go:108 msg="starting boltdb shipper in 0 mode"
level=info ts=2022-09-22T07:46:34.173623411Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:46:34.177117984Z caller=modules.go:529 msg="RulerStorage is nil. Not starting the ruler."
level=info ts=2022-09-22T07:46:34.178200675Z caller=module_service.go:59 msg=initialising module=server
level=info ts=2022-09-22T07:46:34.178280264Z caller=module_service.go:59 msg=initialising module=memberlist-kv
level=info ts=2022-09-22T07:46:34.178365471Z caller=module_service.go:59 msg=initialising module=store
level=info ts=2022-09-22T07:46:34.178778368Z caller=module_service.go:59 msg=initialising module=ingester
level=info ts=2022-09-22T07:46:34.179028065Z caller=module_service.go:59 msg=initialising module=ring
level=info ts=2022-09-22T07:46:34.179373831Z caller=ring.go:275 msg="ring doesn't exist in KV store yet"
level=info ts=2022-09-22T07:46:34.179500448Z caller=client.go:247 msg="value is nil" key=collectors/ring index=1
level=info ts=2022-09-22T07:46:34.179638941Z caller=module_service.go:59 msg=initialising module=table-manager
level=info ts=2022-09-22T07:46:34.179966708Z caller=module_service.go:59 msg=initialising module=ingester-querier
level=info ts=2022-09-22T07:46:34.179375742Z caller=lifecycler.go:530 msg="not loading tokens from file, tokens file path is empty"
level=info ts=2022-09-22T07:46:34.180325822Z caller=lifecycler.go:559 msg="instance not found in ring, adding with no tokens" ring=ingester
level=info ts=2022-09-22T07:46:34.180611947Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:46:34.18085029Z caller=lifecycler.go:406 msg="auto-joining cluster after timeout" ring=ingester
level=info ts=2022-09-22T07:46:34.181115582Z caller=module_service.go:59 msg=initialising module=distributor
level=info ts=2022-09-22T07:46:34.181572591Z caller=loki.go:272 msg="Loki started"
level=info ts=2022-09-22T07:47:34.173832745Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:48:34.174045463Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:48:37.729496146Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:49:34.181855073Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:50:34.17982263Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:50:34.180242674Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:51:34.173650568Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:51:34.173685304Z caller=table_manager.go:208 msg="syncing tables"
level=info ts=2022-09-22T07:52:34.174253904Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:52:34.180731416Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:53:34.173927559Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:54:34.174196077Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:54:34.180682409Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:55:34.174247394Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:56:34.173888737Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:56:34.173927164Z caller=table_manager.go:208 msg="syncing tables"
level=info ts=2022-09-22T07:56:34.180396607Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:57:34.174140935Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:58:34.173649694Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T07:58:34.180400363Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T07:59:34.174673066Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:00:34.174146762Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:00:34.180633584Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T08:01:34.180379898Z caller=table_manager.go:208 msg="syncing tables"
level=info ts=2022-09-22T08:01:34.180406501Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:02:34.179299129Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:02:34.180722479Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T08:03:34.173747161Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:04:34.173688235Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:04:34.18118391Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T08:05:34.174073357Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:06:34.173948908Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:06:34.173946105Z caller=table_manager.go:208 msg="syncing tables"
level=info ts=2022-09-22T08:06:34.180438646Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T08:07:34.173754263Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:08:34.17419279Z caller=table_manager.go:171 msg="uploading tables"
level=info ts=2022-09-22T08:08:34.180660187Z caller=table_manager.go:324 msg="synching tables" expected_tables=62
level=info ts=2022-09-22T08:09:34.179718027Z caller=table_manager.go:171 msg="uploading tables"
================================================
FILE: example-logs/example5
================================================
2022-08-29 08:10:00 | INFO | MessageMonitor: Outgoing message process already started for thread [4]
2022-08-29 08:10:00 | INFO | New ProcessId [c66a5398-2aa5-11ec-8631-0242ac110089] for user 123456
2022-08-29 08:11:00 | TRACE | User 123456 has [0] new messages
2022-08-29 08:11:00 | TRACE | Syncing tables and updating modules for user 123456
2022-08-29 08:11:00 | DEBUG | Ping to 192.168.0.1 failed
2022-08-29 08:11:00 | DEBUG | MessageMonitor: Checking outgoing messages on thread [5]
2022-08-29 08:11:00 | DEBUG | MessageMonitor: Checking outgoing messages on thread [4]
2022-08-29 08:11:00 | ERROR | MessageValidator: Could not parse message, input was null
2022-08-29 08:11:01 | ERROR | Could not generate key, "hasMoreResults" was false
2022-08-29 08:11:36 | TRACE | No new messages on queue 5
2022-08-29 08:11:37 | TRACE | No new messages on queue 4
2022-08-29 08:10:00 | INFO | skip non existing resourceDirectory /var/logs
2022-08-29 08:10:00 | INFO | Using JarLifecycleMapping lifecycle mapping for Project
2022-08-29 08:11:00 | INFO | Using "ASCII" encoding to copy filtered resources
2022-08-29 08:11:00 | INFO | Using "ASCII" encoding to copy filtered properties files
2022-08-29 08:11:00 | TRACE | User 123456 has [0] new messages
2022-08-29 08:11:00 | TRACE | Syncing tables and updating modules for user 123456
2022-08-29 08:11:00 | WARN | ProcessId [c66a5398-2aa5-11ec-8631-0242ac110089] finished early
2022-08-29 08:11:36 | WARN | Fetching contact points for user 123456, but no contact points found
2022-08-29 08:11:36 | WARN | POST to https://www.google.com/search?field=value failed
2022-08-29 08:11:00 | DEBUG | Using "ASCII" encoding to copy filtered resources
2022-08-29 08:11:01 | DEBUG | Using "ASCII" encoding to copy filtered properties files
2022-08-29 08:11:00 | INFO | MessageMonitor: Outgoing message process already started for thread [6]
2022-08-29 08:11:36 | INFO | MessageMonitor: Outgoing message process already started for thread [7]
2022-08-29 08:11:36 | INFO | Copying 1 resource
2022-08-29 08:11:37 | INFO | Copying 1 resource
================================================
FILE: flake.nix
================================================
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
};
outputs = { nixpkgs, rust-overlay, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
rust-toolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
in
{
devShells.${system}.default = pkgs.mkShell {
packages = [ rust-toolchain ];
};
};
}
================================================
FILE: man/tspin.1
================================================
'\" t
.\" Title: tspin
.\" Author: [see the "AUTHOR(S)" section]
.\" Generator: Asciidoctor 2.0.23
.\" Date: 2025-06-08
.\" Manual: tailspin
.\" Source: tailspin 5.4.5
.\" Language: English
.\"
.TH "TSPIN" "1" "2025-06-08" "tailspin 5.4.5" "tailspin"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.ss \n[.ss] 0
.nh
.ad l
.de URL
\fI\\$2\fP <\\$1>\\$3
..
.als MTO URL
.if \n[.g] \{\
. mso www.tmac
. am URL
. ad l
. .
. am MTO
. ad l
. .
. LINKSTYLE blue R < >
.\}
.SH "NAME"
tspin \- A log file highlighter
.SH "SYNOPSIS"
.sp
\fBtspin\fP [\fIOPTION\fP]... [\fIFILE\fP]...
.SH "DESCRIPTION"
.sp
tailspin is a command line tool that highlights log files.
.SH "OPTIONS"
.sp
\fI\-f, \-\-follow\fP
.RS 4
Follow (tail) the contents of the file.
Always true when using the \fI\-\-follow\-command\fP flag.
.RE
.sp
\fI\-p, \-\-print\fP
.RS 4
Print the output to stdout instead of viewing the contents in the pager \fIless\fP.
Always true if using stdin.
.RE
.sp
\fI\-\-config\-path\fP \fBCONFIG_PATH\fP
.RS 4
Specify the path to a custom configuration file.
Defaults to \fBXDG_CONFIG_HOME/tailspin/theme.toml\fP or \fB~/.config/tailspin/theme.toml\fP if not set.
.RE
.sp
\fI\-e, \-\-exec\fP \fBCOMMAND\fP
.RS 4
Run command and view the output in a pager.
The command traps the interrupt signal to allow for cancelling and resuming follow mode while inside \fIless\fP.
.sp
.B Example:
.br
.sp
.if n .RS 4
.nf
.fam C
tspin \-\-listen\-command \*(Aqkubectl logs \-f pod_name\*(Aq
.fam
.fi
.if n .RE
.RE
.sp
\fI\-\-highlight\fP \fBCOLOR1\fP:\fIword1,word2,...\fP \fBCOLOR2\fP:\fIword3,word4,...\fP
.RS 4
Highlight the provided comma\-separated words in the specified color.
Possible colors are red, green, yellow, blue, magenta, and cyan.
.sp
.B Example:
.br
.sp
.if n .RS 4
.nf
.fam C
tspin logfile.txt \-\-highlight red:error,fail \-\-highlight green:success,ok
.fam
.fi
.if n .RE
.RE
.sp
\fI\-\-enable=[HIGHLIGHT_GROUP]\fP
.RS 4
Disable all highlighting groups except the ones specified.
Comma separated list of groups.
Cannot be used with \fB\-\-disable=[HIGHLIGHT_GROUP]\fP.
.RE
.sp
\fI\-\-disable=[HIGHLIGHT_GROUP]\fP
.RS 4
Disable the specified highlighting groups.
Comma separated list of groups.
Cannot be used with \fB\-\-enable=[HIGHLIGHT_GROUP]\fP.
.RE
.sp
\fI\-\-disable\-builtin\-keywords\fP
.RS 4
Disables the highlighting of all builtin keyword groups (booleans, severity and REST).
.RE
.SH "ENVIRONMENT VARIABLES"
.sp
\fBTAILSPIN_PAGER\fP
.RS 4
Set the \fITAILSPIN_PAGER\fP environment variable to override the default pager.
The command must include the string \fI[FILE]\fP which will be replaced with the file path internally.
For example, \fI"ov \-f [FILE]"\fP.
.RE
.SH "SEE ALSO"
.sp
\fBless\fP(1), \fBtail\fP(1)
.SH "ABOUT"
.sp
Ben Sadeh (github.com/bensadeh/tailspin)
.sp
Released under the MIT License
================================================
FILE: rust-toolchain.toml
================================================
[toolchain]
channel = "stable"
components = ["rust-src", "rust-analyzer"]
================================================
FILE: rustfmt.toml
================================================
max_width = 120
================================================
FILE: src/cli/completions.rs
================================================
use crate::cli::Arguments;
use clap::{Command, CommandFactory};
use clap_complete::{Generator, Shell, generate};
use std::io;
use std::process::exit;
pub fn generate_shell_completions_and_exit_or_continue(cli: &Arguments) {
let mut cmd = Arguments::command();
if cli.generate_bash_completions {
print_completions(Shell::Bash, &mut cmd);
exit(0);
}
if cli.generate_fish_completions {
print_completions(Shell::Fish, &mut cmd);
exit(0);
}
if cli.generate_zsh_completions {
print_completions(Shell::Zsh, &mut cmd);
exit(0);
}
}
fn print_completions(generator: G, cmd: &mut Command) {
generate(generator, cmd, cmd.get_name().to_string(), &mut io::stdout());
}
================================================
FILE: src/cli/keywords.rs
================================================
use crate::cli::{Arguments, KeywordColor};
use tailspin::config::KeywordConfig;
use tailspin::style::{Color, Style};
pub fn get_keywords_from_cli(cli: &Arguments) -> Vec {
cli.color_word
.iter()
.flat_map(|(color, words)| {
words.iter().map(move |word| KeywordConfig {
style: Style::new().fg(Color::from(*color)),
words: vec![word.clone()],
})
})
.collect()
}
impl From for Color {
fn from(value: KeywordColor) -> Self {
match value {
KeywordColor::Red => Self::Red,
KeywordColor::Green => Self::Green,
KeywordColor::Yellow => Self::Yellow,
KeywordColor::Blue => Self::Blue,
KeywordColor::Magenta => Self::Magenta,
KeywordColor::Cyan => Self::Cyan,
}
}
}
================================================
FILE: src/cli/mod.rs
================================================
mod completions;
mod keywords;
mod styles;
use crate::cli::completions::generate_shell_completions_and_exit_or_continue;
use crate::cli::keywords::get_keywords_from_cli;
use crate::cli::styles::get_styles;
use crate::config::{Source, Target, get_io_config};
use crate::highlighter_builder;
use crate::highlighter_builder::builtins::get_builtin_keywords;
use crate::highlighter_builder::groups;
use crate::theme::reader;
use anyhow::Result;
use clap::{Parser, ValueEnum};
use nu_ansi_term::Style;
use std::error::Error;
use std::io::{IsTerminal, stdin};
use std::path::PathBuf;
use tailspin::Highlighter;
#[derive(Parser)]
#[command(
name = "tspin",
version,
about,
author,
styles = get_styles(),
max_term_width = 105,
)]
pub struct Arguments {
/// Filepath
#[clap(name = "FILE", value_hint = clap::ValueHint::FilePath)]
pub file_path: Option,
/// Follow the contents of a file
#[clap(short = 'f', long = "follow")]
pub follow: bool,
/// Print the output to stdout
#[clap(short = 'p', long = "print")]
pub to_stdout: bool,
/// Provide a custom path to a configuration file
#[clap(long = "config-path")]
pub config_path: Option,
/// Run command and view the output in a pager
#[clap(short = 'e', long = "exec")]
pub exec: Option,
/// Highlights in the form color:word1,word2
///
/// [possible values: red, green, yellow, blue, magenta, cyan]
#[arg(long = "highlight", value_parser = parse_highlight)]
pub color_word: Vec<(KeywordColor, Vec)>,
/// Enable specific highlighters
#[clap(long = "enable", value_enum, use_value_delimiter = true)]
pub enabled_highlighters: Vec,
/// Disable specific highlighters
#[clap(long = "disable", value_enum, use_value_delimiter = true)]
pub disabled_highlighters: Vec,
/// Disable the highlighting of all builtin keyword groups (booleans, nulls, log severities and common REST verbs)
#[clap(long = "disable-builtin-keywords")]
pub disable_builtin_keywords: bool,
/// Override the default pager command used by tspin. (e.g. `--pager="ov -f [FILE]"`)
#[clap(long = "pager", env = "TAILSPIN_PAGER")]
pub pager: Option,
/// Print bash completions to stdout
#[clap(long = "generate-bash-completions", hide = true)]
pub generate_bash_completions: bool,
/// Print fish completions to stdout
#[clap(long = "generate-fish-completions", hide = true)]
pub generate_fish_completions: bool,
/// Print zsh completions to stdout
#[clap(long = "generate-zsh-completions", hide = true)]
pub generate_zsh_completions: bool,
}
fn parse_highlight(s: &str) -> Result<(KeywordColor, Vec), Box> {
let (color_str, words_str) = s
.split_once(':')
.ok_or_else(|| format!("Expected format COLOR:word1,word2,... found `{}`", s))?;
let color = KeywordColor::from_str(color_str, true)?;
let words = words_str.split(',').map(str::to_owned).collect();
Ok((color, words))
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Hash)]
pub enum KeywordColor {
Red,
Green,
Yellow,
Blue,
Magenta,
Cyan,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)]
pub enum HighlighterGroup {
Numbers,
Urls,
Pointers,
Dates,
Paths,
Quotes,
KeyValuePairs,
Uuids,
IpAddresses,
Processes,
Json,
}
pub struct FullConfig {
pub source: Source,
pub target: Target,
pub highlighter: Highlighter,
}
pub fn get_config() -> Result {
let cli = Arguments::parse();
generate_shell_completions_and_exit_or_continue(&cli);
let std_in_has_no_data = stdin().is_terminal();
if cli.file_path.is_none() && cli.exec.is_none() && std_in_has_no_data {
let style = Style::new().fg(nu_ansi_term::Color::Cyan);
println!("Missing filename ({} for help)", style.paint("tspin --help"));
std::process::exit(0);
}
let io_config = get_io_config(&cli)?;
let highlighter_groups = groups::get_highlighter_groups(&cli.enabled_highlighters, &cli.disabled_highlighters)?;
let theme = reader::parse_theme(&cli.config_path)?;
let keywords_builtin = get_builtin_keywords(cli.disable_builtin_keywords);
let keywords_from_toml = theme.keywords.clone();
let keywords_from_cli = get_keywords_from_cli(&cli);
let keywords = vec![]
.into_iter()
.chain(keywords_builtin)
.chain(keywords_from_toml)
.chain(keywords_from_cli)
.collect();
let highlighter = highlighter_builder::get_highlighter(highlighter_groups, theme, keywords)?;
Ok(FullConfig {
source: io_config.source,
target: io_config.target,
highlighter,
})
}
#[test]
fn verify_app() {
use clap::CommandFactory;
Arguments::command().debug_assert()
}
================================================
FILE: src/cli/styles.rs
================================================
use clap::builder::{Styles, styling};
use styling::AnsiColor;
pub const fn get_styles() -> Styles {
Styles::styled()
.header(AnsiColor::Magenta.on_default().bold())
.usage(AnsiColor::Green.on_default().bold())
.literal(AnsiColor::Blue.on_default().bold())
.placeholder(AnsiColor::Yellow.on_default())
}
================================================
FILE: src/config/mod.rs
================================================
use crate::cli::Arguments;
use nu_ansi_term::Color::{Magenta, Yellow};
use std::cmp::PartialEq;
use std::fs;
use std::io::{self, IsTerminal, stdin};
use std::path::PathBuf;
use thiserror::Error;
pub struct InputOutputConfig {
pub source: Source,
pub target: Target,
}
#[derive(Ord, PartialOrd, Eq, PartialEq)]
pub enum Source {
File(FileInfo),
Command(String),
Stdin,
}
#[derive(PartialEq, Eq, Ord, PartialOrd)]
pub struct FileInfo {
pub path: PathBuf,
pub terminate_after_first_read: bool,
}
pub enum Target {
Less(LessOptions),
CustomPager(CustomPagerOptions),
Stdout,
}
pub struct LessOptions {
pub follow: bool,
}
pub struct CustomPagerOptions {
pub command: String,
pub args: Vec,
}
#[derive(Debug, Error)]
pub enum ConfigError {
#[error("Missing filename ({} for help)", Magenta.paint("tspin --help").to_string())]
MissingFilename,
#[error("Cannot read from both file and {}", Magenta.paint("--listen-command").to_string())]
CannotReadBothFileAndListenCommand,
#[error("Could not determine input type")]
CouldNotDetermineInputType,
#[error("{0}: No such file or directory")]
NoSuchFileOrDirectory(String),
#[error("Path is not a file")]
PathNotFile,
#[error("I/O Error: {0}")]
Io(#[from] io::Error),
#[error("Could not parse custom pager command")]
CouldNotParseCustomPagerCommand,
}
pub fn get_io_config(args: &Arguments) -> Result {
let source = get_source(args)?;
let target = get_target(args, &source)?;
Ok(InputOutputConfig { source, target })
}
fn get_source(args: &Arguments) -> Result {
let std_in_has_data = !stdin().is_terminal();
if args.file_path.is_none() && !std_in_has_data && args.exec.is_none() {
return Err(ConfigError::MissingFilename);
}
if args.file_path.is_some() && args.exec.is_some() {
return Err(ConfigError::CannotReadBothFileAndListenCommand);
}
if let Some(path) = &args.file_path {
let terminate_after_first_read = args.to_stdout && !args.follow;
return process_path_input(path.into(), terminate_after_first_read);
}
if std_in_has_data {
return Ok(Source::Stdin);
}
if let Some(command) = &args.exec {
return Ok(Source::Command(command.clone()));
}
Err(ConfigError::CouldNotDetermineInputType)
}
fn get_target(args: &Arguments, input: &Source) -> Result {
if *input == Source::Stdin || args.to_stdout {
return Ok(Target::Stdout);
}
if let Some(command) = &args.pager {
let custom_pager_options = split_custom_pager_command(command)?;
return Ok(Target::CustomPager(custom_pager_options));
}
let follow_mode = if args.exec.is_some() { true } else { args.follow };
Ok(Target::Less(LessOptions { follow: follow_mode }))
}
fn split_custom_pager_command(raw_command: &str) -> Result {
let raw_args = shell_words::split(raw_command).unwrap_or_default();
let (command, args) = match raw_args.split_first() {
Some((first, rest)) if !rest.is_empty() => (first.to_string(), rest.to_vec()),
Some(_) => return Err(ConfigError::CouldNotParseCustomPagerCommand), // Command without args
None => return Err(ConfigError::CouldNotParseCustomPagerCommand), // Empty args
};
Ok(CustomPagerOptions { command, args })
}
fn process_path_input(path: PathBuf, terminate_after_first_read: bool) -> Result {
if !path.exists() {
let path_display = path.display().to_string();
let path_colored = Yellow.paint(path_display).to_string();
return Err(ConfigError::NoSuchFileOrDirectory(path_colored));
}
if !fs::metadata(&path)?.is_file() {
return Err(ConfigError::PathNotFile);
}
Ok(Source::File(FileInfo {
path,
terminate_after_first_read,
}))
}
================================================
FILE: src/core/config.rs
================================================
use crate::style::{Color, Style};
/// Configuration for highlighting numeric values.
#[derive(Clone, Copy)]
pub struct NumberConfig {
/// Style applied to numbers.
pub style: Style,
}
/// Configuration for highlighting UUIDs.
#[derive(Clone, Copy)]
pub struct UuidConfig {
/// Style applied to numeric characters.
pub number: Style,
/// Style applied to alphabetic characters.
pub letter: Style,
/// Style applied to dashes (`-`).
pub dash: Style,
}
/// Configuration for highlighting key-value pairs.
#[derive(Clone, Copy)]
pub struct KeyValueConfig {
/// Style for the key portion.
pub key: Style,
/// Style for the separator between key and value.
pub separator: Style,
}
/// Configuration for highlighting date-time strings.
#[derive(Clone, Copy)]
pub struct DateTimeConfig {
/// Style for dates.
pub date: Style,
/// Style for times.
pub time: Style,
/// Style for timezone indicators.
pub zone: Style,
/// Style for separators.
pub separator: Style,
}
/// Configuration for highlighting IPv4 addresses.
#[derive(Clone, Copy)]
pub struct IpV4Config {
/// Style for numeric segments.
pub number: Style,
/// Style for dot separators (`.`).
pub separator: Style,
}
/// Configuration for highlighting IPv6 addresses.
#[derive(Clone, Copy)]
pub struct IpV6Config {
/// Style for numeric characters.
pub number: Style,
/// Style for alphabetic characters.
pub letter: Style,
/// Style for colon separators (`:`).
pub separator: Style,
}
/// Configuration for highlighting URLs.
#[derive(Clone, Copy)]
pub struct UrlConfig {
/// Style for "http" scheme.
pub http: Style,
/// Style for "https" scheme.
pub https: Style,
/// Style for the hostname.
pub host: Style,
/// Style for URL paths.
pub path: Style,
/// Style for query parameter keys.
pub query_params_key: Style,
/// Style for query parameter values.
pub query_params_value: Style,
/// Style for URL symbols (e.g., `/`, `:`, `?`).
pub symbols: Style,
}
/// Configuration for highlighting Unix file paths.
#[derive(Clone, Copy)]
pub struct UnixPathConfig {
/// Style for path segments.
pub segment: Style,
/// Style for path separators (`/`).
pub separator: Style,
}
/// Configuration for highlighting memory pointers.
#[derive(Clone, Copy)]
pub struct PointerConfig {
/// Style for numeric digits.
pub number: Style,
/// Style for alphabetic characters.
pub letter: Style,
/// Style for pointer separators.
pub separator: Style,
/// Token used to separate segments.
pub separator_token: char,
/// Style for the `x` character in pointers.
pub x: Style,
}
/// Configuration for highlighting Unix processes.
#[derive(Clone, Copy)]
pub struct UnixProcessConfig {
/// Style for process name.
pub name: Style,
/// Style for process ID.
pub id: Style,
/// Style for surrounding brackets.
pub bracket: Style,
}
/// Configuration for highlighting JSON structures.
#[derive(Clone, Copy)]
pub struct JsonConfig {
/// Style for JSON keys.
pub key: Style,
/// Style for quotation marks (`"`).
pub quote_token: Style,
/// Style for curly brackets (`{}`).
pub curly_bracket: Style,
/// Style for square brackets (`[]`).
pub square_bracket: Style,
/// Style for commas (`,`).
pub comma: Style,
/// Style for colons (`:`).
pub colon: Style,
}
/// Configuration for highlighting quoted text.
#[derive(Clone, Copy)]
pub struct QuotesConfig {
/// ASCII byte used as quote delimiter.
pub quotes_token: u8,
/// Style applied to quoted text.
pub style: Style,
}
/// Configuration for highlighting custom keywords.
#[derive(PartialEq, Eq, Ord, PartialOrd, Debug, Clone)]
pub struct KeywordConfig {
/// List of keywords to highlight.
pub words: Vec,
/// Style to apply to the keywords.
pub style: Style,
}
/// Configuration for highlighting custom regex patterns.
#[derive(PartialEq, Eq, Ord, PartialOrd, Debug, Clone)]
pub struct RegexConfig {
/// Regex pattern for matching text.
pub regex: String,
/// Style applied to regex matches.
pub style: Style,
}
impl Default for NumberConfig {
fn default() -> Self {
NumberConfig {
style: Style::new().fg(Color::Cyan),
}
}
}
impl Default for UuidConfig {
fn default() -> Self {
UuidConfig {
number: Style::new().fg(Color::Blue).italic(),
letter: Style::new().fg(Color::Magenta).italic(),
dash: Style::new().fg(Color::Red),
}
}
}
impl Default for KeyValueConfig {
fn default() -> Self {
KeyValueConfig {
key: Style::new().faint(),
separator: Style::new().fg(Color::White),
}
}
}
impl Default for DateTimeConfig {
fn default() -> Self {
DateTimeConfig {
date: Style::new().fg(Color::Magenta),
time: Style::new().fg(Color::Blue),
zone: Style::new().fg(Color::Red),
separator: Style::new().faint(),
}
}
}
impl Default for IpV4Config {
fn default() -> Self {
IpV4Config {
number: Style::new().fg(Color::Blue).italic(),
separator: Style::new().fg(Color::Red),
}
}
}
impl Default for IpV6Config {
fn default() -> Self {
IpV6Config {
number: Style::new().fg(Color::Blue).italic(),
letter: Style::new().fg(Color::Magenta).italic(),
separator: Style::new().fg(Color::Red),
}
}
}
impl Default for UrlConfig {
fn default() -> Self {
UrlConfig {
http: Style::new().fg(Color::Red).faint(),
https: Style::new().fg(Color::Green).faint(),
host: Style::new().fg(Color::Blue).faint(),
path: Style::new().fg(Color::Blue),
query_params_key: Style::new().fg(Color::Magenta),
query_params_value: Style::new().fg(Color::Cyan),
symbols: Style::new().fg(Color::Red),
}
}
}
impl Default for UnixPathConfig {
fn default() -> Self {
UnixPathConfig {
segment: Style::new().fg(Color::Green),
separator: Style::new().fg(Color::Yellow),
}
}
}
impl Default for PointerConfig {
fn default() -> Self {
PointerConfig {
number: Style::new().fg(Color::Blue).italic(),
letter: Style::new().fg(Color::Magenta).italic(),
separator: Style::new().faint(),
separator_token: '•',
x: Style::new().fg(Color::Red),
}
}
}
impl Default for UnixProcessConfig {
fn default() -> Self {
UnixProcessConfig {
name: Style::new().fg(Color::Yellow),
id: Style::new().fg(Color::Cyan),
bracket: Style::new().fg(Color::Red),
}
}
}
impl Default for JsonConfig {
fn default() -> Self {
JsonConfig {
key: Style::new().faint(),
quote_token: Style::new().faint(),
curly_bracket: Style::new().faint(),
square_bracket: Style::new().faint(),
comma: Style::new().faint(),
colon: Style::new().faint(),
}
}
}
impl Default for QuotesConfig {
fn default() -> Self {
QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
}
}
}
================================================
FILE: src/core/highlighter.rs
================================================
use crate::core::config::*;
use crate::core::highlighters::StaticHighlight;
use crate::core::highlighters::date_dash::DateDashHighlighter;
use crate::core::highlighters::date_time::TimeHighlighter;
use crate::core::highlighters::ip_v4::IpV4Highlighter;
use crate::core::highlighters::ip_v6::IpV6Highlighter;
use crate::core::highlighters::json::JsonHighlighter;
use crate::core::highlighters::key_value::KeyValueHighlighter;
use crate::core::highlighters::keyword::KeywordHighlighter;
use crate::core::highlighters::number::NumberHighlighter;
use crate::core::highlighters::pointer::PointerHighlighter;
use crate::core::highlighters::quote::QuoteHighlighter;
use crate::core::highlighters::regex::RegexpHighlighter;
use crate::core::highlighters::unix_path::UnixPathHighlighter;
use crate::core::highlighters::unix_process::UnixProcessHighlighter;
use crate::core::highlighters::url::UrlHighlighter;
use crate::core::highlighters::uuid::UuidHighlighter;
use crate::core::utils::normalizer::normalize_keyword_configs;
use crate::core::utils::split_and_apply::apply_only_to_unhighlighted;
use std::borrow::Cow;
use thiserror::Error;
/// A regex-based log highlighter.
///
/// `Highlighter` applies configured regex-based highlighters to text inputs,
/// returning highlighted output with ANSI colors.
pub struct Highlighter {
highlighters: Vec,
}
pub trait Highlight: Sync + Send {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str>;
}
#[derive(Debug, Error)]
pub enum Error {
#[error("Regex error: {0}")]
RegexError(String),
#[error("Pattern error: {0}")]
PatternError(String),
}
impl Highlighter {
const fn new() -> Self {
Highlighter {
highlighters: Vec::new(),
}
}
/// Creates a new [`HighlighterBuilder`] for configuring a [`Highlighter`].
pub const fn builder() -> HighlighterBuilder {
HighlighterBuilder {
highlighters: Vec::new(),
first_error: None,
}
}
fn with_highlighters(mut self, highlighters: Vec) -> Self {
self.highlighters = highlighters;
self
}
/// Applies the configured highlights to the given input string.
pub fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
self.highlighters.iter().fold(Cow::Borrowed(input), |acc, highlighter| {
let result = if highlighter.needs_full_input() {
highlighter.apply(&acc)
} else {
apply_only_to_unhighlighted(&acc, highlighter)
};
match result {
Cow::Borrowed(_) => acc,
Cow::Owned(modified) => Cow::Owned(modified),
}
})
}
}
impl Default for Highlighter {
/// Creates a default `Highlighter` with common patterns.
///
/// This operation is expensive and should be done once and reused.
fn default() -> Self {
let mut builder = Highlighter::builder();
builder
.with_json_highlighter(JsonConfig::default())
.with_date_time_highlighters(DateTimeConfig::default())
.with_url_highlighter(UrlConfig::default())
.with_ip_v4_highlighter(IpV4Config::default())
.with_ip_v6_highlighter(IpV6Config::default())
.with_uuid_highlighter(UuidConfig::default())
.with_pointer_highlighter(PointerConfig::default())
.with_unix_path_highlighter(UnixPathConfig::default())
.with_unix_process_highlighter(UnixProcessConfig::default())
.with_key_value_highlighter(KeyValueConfig::default())
.with_number_highlighter(NumberConfig::default())
.with_quote_highlighter(QuotesConfig::default());
builder.build().expect("Default constructor should never fail")
}
}
/// Builder for configuring a [`Highlighter`].
pub struct HighlighterBuilder {
highlighters: Vec,
first_error: Option,
}
impl HighlighterBuilder {
/// Adds a highlighter for numbers.
pub fn with_number_highlighter(&mut self, config: NumberConfig) -> &mut Self {
self.try_add_highlighter(NumberHighlighter::new(config).map(StaticHighlight::Number));
self
}
/// Adds a highlighter for UUIDs.
pub fn with_uuid_highlighter(&mut self, config: UuidConfig) -> &mut Self {
self.try_add_highlighter(UuidHighlighter::new(config).map(StaticHighlight::Uuid));
self
}
/// Adds a highlighter for Unix file paths.
pub fn with_unix_path_highlighter(&mut self, config: UnixPathConfig) -> &mut Self {
self.try_add_highlighter(UnixPathHighlighter::new(config).map(StaticHighlight::UnixPath));
self
}
/// Adds a highlighter for Unix processes.
pub fn with_unix_process_highlighter(&mut self, config: UnixProcessConfig) -> &mut Self {
self.try_add_highlighter(UnixProcessHighlighter::new(config).map(StaticHighlight::UnixProcess));
self
}
/// Adds a highlighter for key-value pairs.
pub fn with_key_value_highlighter(&mut self, config: KeyValueConfig) -> &mut Self {
self.try_add_highlighter(KeyValueHighlighter::new(config).map(StaticHighlight::KeyValue));
self
}
/// Adds highlighters for dates and times.
pub fn with_date_time_highlighters(&mut self, config: DateTimeConfig) -> &mut Self {
self.try_add_highlighter(TimeHighlighter::new(config).map(StaticHighlight::Time))
.try_add_highlighter(DateDashHighlighter::new(config).map(StaticHighlight::DateDash))
}
/// Adds a highlighter for IPv6 addresses.
pub fn with_ip_v6_highlighter(&mut self, config: IpV6Config) -> &mut Self {
self.try_add_highlighter(IpV6Highlighter::new(config).map(StaticHighlight::IpV6));
self
}
/// Adds a highlighter for IPv4 addresses.
pub fn with_ip_v4_highlighter(&mut self, config: IpV4Config) -> &mut Self {
self.try_add_highlighter(IpV4Highlighter::new(config).map(StaticHighlight::IpV4));
self
}
/// Adds a highlighter for URLs.
pub fn with_url_highlighter(&mut self, config: UrlConfig) -> &mut Self {
self.try_add_highlighter(UrlHighlighter::new(config).map(StaticHighlight::Url));
self
}
/// Adds a highlighter for memory pointers.
pub fn with_pointer_highlighter(&mut self, config: PointerConfig) -> &mut Self {
self.try_add_highlighter(PointerHighlighter::new(config).map(StaticHighlight::Pointer));
self
}
/// Adds a highlighter using a custom regex pattern.
pub fn with_regex_highlighter(&mut self, config: RegexConfig) -> &mut Self {
self.try_add_highlighter(RegexpHighlighter::new(config).map(StaticHighlight::Regexp));
self
}
/// Adds a highlighter for quoted text.
pub fn with_quote_highlighter(&mut self, config: QuotesConfig) -> &mut Self {
self.try_add_highlighter(Ok(StaticHighlight::Quote(QuoteHighlighter::new(config))));
self
}
/// Adds a highlighter for JSON structures.
pub fn with_json_highlighter(&mut self, config: JsonConfig) -> &mut Self {
self.try_add_highlighter(Ok(StaticHighlight::Json(JsonHighlighter::new(config))));
self
}
/// Adds keyword highlighters.
pub fn with_keyword_highlighter(&mut self, keyword_configs: Vec) -> &mut Self {
let normalized_keyword_configs = normalize_keyword_configs(keyword_configs);
for keyword_config in normalized_keyword_configs {
if self.first_error.is_some() {
continue;
}
match KeywordHighlighter::new(keyword_config) {
Ok(h) => self.highlighters.push(StaticHighlight::Keyword(h)),
Err(e) => self.first_error = Some(Error::PatternError(e.to_string())),
}
}
self
}
/// Finalizes the builder and returns a configured [`Highlighter`].
pub fn build(self) -> Result {
if let Some(err) = self.first_error {
Err(err)
} else {
Ok(Highlighter::new().with_highlighters(self.highlighters))
}
}
fn try_add_highlighter(&mut self, highlighter: Result) -> &mut Self {
if self.first_error.is_some() {
return self;
}
match highlighter {
Ok(h) => self.highlighters.push(h),
Err(e) => self.first_error = Some(Error::RegexError(e.to_string())),
}
self
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
fn number_then_quote_highlighter() -> Highlighter {
let mut builder = Highlighter::builder();
builder
.with_number_highlighter(NumberConfig {
style: Style::new().fg(Color::Cyan),
})
.with_quote_highlighter(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
builder.build().unwrap()
}
#[test]
fn test_quote_highlights_around_existing_number() {
let highlighter = number_then_quote_highlighter();
let input = r#"count is "value 42 here" end"#;
let expected = r#"count is [yellow]"value [cyan]42[reset][yellow] here"[reset] end"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_quote_with_no_highlights_inside() {
let highlighter = number_then_quote_highlighter();
let input = r#"msg "hello world" end"#;
let expected = r#"msg [yellow]"hello world"[reset] end"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_number_outside_quotes_unaffected() {
let highlighter = number_then_quote_highlighter();
let input = r#"code 200 "error" end"#;
let expected = r#"code [cyan]200[reset] [yellow]"error"[reset] end"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_multiple_numbers_inside_quotes() {
let highlighter = number_then_quote_highlighter();
let input = r#""port 8080 and 443""#;
let expected = r#"[yellow]"port [cyan]8080[reset][yellow] and [cyan]443[reset][yellow]"[reset]"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_multiple_quoted_segments() {
let highlighter = number_then_quote_highlighter();
let input = r#""count 1" and "count 2""#;
let expected =
r#"[yellow]"count [cyan]1[reset][yellow]"[reset] and [yellow]"count [cyan]2[reset][yellow]"[reset]"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_no_quotes_only_numbers() {
let highlighter = number_then_quote_highlighter();
let input = "status 200 ok";
let expected = "status [cyan]200[reset] ok";
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
}
================================================
FILE: src/core/highlighters/date_dash.rs
================================================
use crate::core::config::DateTimeConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr2;
use regex::{Captures, Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct DateDashHighlighter {
regex: Regex,
date: Painter,
separator: Painter,
idx: Idx,
}
#[derive(Copy, Clone)]
struct Idx {
// Branch A: YYYY sep first sep2 second
a_year: usize,
a_sep1: usize,
a_first: usize,
a_sep2: usize,
a_second: usize,
// Branch B: first sep second sep2 year
b_first: usize,
b_sep1: usize,
b_second: usize,
b_sep2: usize,
b_year: usize,
}
impl DateDashHighlighter {
pub fn new(time_config: DateTimeConfig) -> Result {
let pattern = r"(?x)
# Branch A: YYYY-xx-xx
(?P 19\d{2} | 20\d{2} )
(?P [-/] )
(?P 0[1-9] | [12]\d | 3[01] )
(?P [-/] )
(?P 0[1-9] | [12]\d | 3[01] )
|
# Branch B: xx-xx-YYYY
(?P 0[1-9] | [12]\d | 3[01] )
(?P [-/] )
(?P 0[1-9] | [12]\d | 3[01] )
(?P [-/] )
(?P 19\d{2} | 20\d{2} )
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
// Resolve capture names → indices once.
let mut map = std::collections::HashMap::new();
for (i, name) in regex.capture_names().enumerate() {
if let Some(n) = name {
map.insert(n.to_string(), i);
}
}
let idx = Idx {
a_year: map["a_year"],
a_sep1: map["a_sep1"],
a_first: map["a_first"],
a_sep2: map["a_sep2"],
a_second: map["a_second"],
b_first: map["b_first"],
b_sep1: map["b_sep1"],
b_second: map["b_second"],
b_sep2: map["b_sep2"],
b_year: map["b_year"],
};
Ok(Self {
regex,
idx,
date: Painter::new(time_config.date.into()),
separator: Painter::new(time_config.separator.into()),
})
}
#[inline]
fn write_branch_a(&self, caps: &Captures<'_>, out: &mut String) {
// YYYY sep first sep2 second → keep order (already year-first)
let y = caps.get(self.idx.a_year).unwrap().as_str();
let s1 = caps.get(self.idx.a_sep1).unwrap().as_str();
let f = caps.get(self.idx.a_first).unwrap().as_str();
let s2 = caps.get(self.idx.a_sep2).unwrap().as_str();
let s = caps.get(self.idx.a_second).unwrap().as_str();
self.date.paint(out, y);
self.separator.paint(out, s1);
self.date.paint(out, f);
self.separator.paint(out, s2);
self.date.paint(out, s);
}
#[inline]
fn write_branch_b(&self, caps: &Captures<'_>, out: &mut String) {
// first sep second sep2 YYYY → normalize to year-first: YYYY sep1 first sep2 second
let f = caps.get(self.idx.b_first).unwrap().as_str();
let s1 = caps.get(self.idx.b_sep1).unwrap().as_str();
let s = caps.get(self.idx.b_second).unwrap().as_str();
let s2 = caps.get(self.idx.b_sep2).unwrap().as_str();
let y = caps.get(self.idx.b_year).unwrap().as_str();
self.date.paint(out, y);
self.separator.paint(out, s1);
self.date.paint(out, f);
self.separator.paint(out, s2);
self.date.paint(out, s);
}
}
impl Highlight for DateDashHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr2(b'-', b'/', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
let mut out: Option = None;
let mut last = 0usize;
for caps in self.regex.captures_iter(input) {
let m = caps.get(0).unwrap();
let buf = out.get_or_insert_with(|| String::with_capacity(input.len() + 32));
buf.push_str(&input[last..m.start()]);
if caps.get(self.idx.a_year).is_some() {
self.write_branch_a(&caps, buf);
} else {
self.write_branch_b(&caps, buf);
}
last = m.end();
}
match out {
Some(mut buf) => {
buf.push_str(&input[last..]);
Cow::Owned(buf)
}
None => Cow::Borrowed(input),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_date_dash_highlighter() {
let config = DateTimeConfig {
date: Style::new().fg(Color::Magenta),
separator: Style::new().fg(Color::Blue),
..DateTimeConfig::default()
};
let highlighter = DateDashHighlighter::new(config).unwrap();
let cases = vec![
(
"2022-09-09",
"[magenta]2022[reset][blue]-[reset][magenta]09[reset][blue]-[reset][magenta]09[reset]",
),
(
"2022/12/30",
"[magenta]2022[reset][blue]/[reset][magenta]12[reset][blue]/[reset][magenta]30[reset]",
),
(
"09-09-2022",
"[magenta]2022[reset][blue]-[reset][magenta]09[reset][blue]-[reset][magenta]09[reset]",
),
(
"09/09/2022",
"[magenta]2022[reset][blue]/[reset][magenta]09[reset][blue]/[reset][magenta]09[reset]",
),
("3022-09-09", "3022-09-09"), // invalid year
("2022-19-39", "2022-19-39"), // invalid month
("2022/19/39", "2022/19/39"), // invalid month
("19/39/3023", "19/39/3023"), // invalid year
("No dates here!", "No dates here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/date_time.rs
================================================
use crate::core::config::DateTimeConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Captures, Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct TimeHighlighter {
regex: Regex,
idx: Idx,
time: Painter,
zone: Painter,
separator: Painter,
}
#[derive(Copy, Clone)]
struct Idx {
t: usize,
hours: usize,
colon1: usize,
minutes: usize,
colon2: usize,
seconds: usize,
frac_sep: usize,
frac_digits: usize,
tz: usize,
}
impl TimeHighlighter {
pub fn new(time_config: DateTimeConfig) -> Result {
let pattern = r"(?x)
(?P[T\s])?
(?P[01]?\d|2[0-3])(?P:)
(?P[0-5]\d)(?P:)
(?P[0-5]\d)
(?P[.,:])?(?P\d+)?
(?PZ)?
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
let mut name_to_idx = std::collections::HashMap::new();
for (i, name_opt) in regex.capture_names().enumerate() {
if let Some(name) = name_opt {
name_to_idx.insert(name.to_string(), i);
}
}
let idx = Idx {
t: name_to_idx["T"],
hours: name_to_idx["hours"],
colon1: name_to_idx["colon1"],
minutes: name_to_idx["minutes"],
colon2: name_to_idx["colon2"],
seconds: name_to_idx["seconds"],
frac_sep: name_to_idx["frac_sep"],
frac_digits: name_to_idx["frac_digits"],
tz: name_to_idx["tz"],
};
Ok(Self {
regex,
idx,
time: Painter::new(time_config.time.into()),
zone: Painter::new(time_config.zone.into()),
separator: Painter::new(time_config.separator.into()),
})
}
#[inline]
fn write_part(buf: &mut String, caps: &Captures<'_>, i: usize, painter: &Painter) {
if let Some(m) = caps.get(i) {
painter.paint(buf, m.as_str());
}
}
}
impl Highlight for TimeHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b':', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
let mut out: Option = None;
let mut last = 0usize;
for caps in self.regex.captures_iter(input) {
let m = caps.get(0).unwrap();
let buf = out.get_or_insert_with(|| String::with_capacity(input.len() + 32));
buf.push_str(&input[last..m.start()]);
Self::write_part(buf, &caps, self.idx.t, &self.zone);
Self::write_part(buf, &caps, self.idx.hours, &self.time);
Self::write_part(buf, &caps, self.idx.colon1, &self.separator);
Self::write_part(buf, &caps, self.idx.minutes, &self.time);
Self::write_part(buf, &caps, self.idx.colon2, &self.separator);
Self::write_part(buf, &caps, self.idx.seconds, &self.time);
Self::write_part(buf, &caps, self.idx.frac_sep, &self.separator);
Self::write_part(buf, &caps, self.idx.frac_digits, &self.time);
Self::write_part(buf, &caps, self.idx.tz, &self.zone);
last = m.end();
}
match out {
Some(mut buf) => {
buf.push_str(&input[last..]);
Cow::Owned(buf)
}
None => Cow::Borrowed(input),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::config::DateTimeConfig;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_time_highlighter() {
let config = DateTimeConfig {
date: Style::new(),
time: Style::new().fg(Color::Red),
zone: Style::new().fg(Color::Blue),
separator: Style::new().fg(Color::Yellow),
};
let highlighter = TimeHighlighter::new(config).unwrap();
let cases = vec![
(
"07:46:34",
"[red]07[reset][yellow]:[reset][red]46[reset][yellow]:[reset][red]34[reset]",
),
(
"10:51:19.251",
"[red]10[reset][yellow]:[reset][red]51[reset][yellow]:[reset][red]19[reset][yellow].[reset][red]251[reset]",
),
(
"11:47:39:850",
"[red]11[reset][yellow]:[reset][red]47[reset][yellow]:[reset][red]39[reset][yellow]:[reset][red]850[reset]",
),
(
"3:33:30",
"[red]3[reset][yellow]:[reset][red]33[reset][yellow]:[reset][red]30[reset]",
),
(
"2022-09-09 11:48:34,534",
"2022-09-09[blue] [reset][red]11[reset][yellow]:[reset][red]48[reset][yellow]:[reset][red]34[reset][yellow],[reset][red]534[reset]",
),
(
"2022-09-22T07:46:34.171800155Z",
"2022-09-22[blue]T[reset][red]07[reset][yellow]:[reset][red]46[reset][yellow]:[reset][red]34[reset][yellow].[reset][red]171800155[reset][blue]Z[reset]",
),
(
"2024-09-14T07:57:30.659+02:00",
"2024-09-14[blue]T[reset][red]07[reset][yellow]:[reset][red]57[reset][yellow]:[reset][red]30[reset][yellow].[reset][red]659[reset]+02:00",
),
("No time here!", "No time here!"),
("2001:db8::ff00:42:8329", "2001:db8::ff00:42:8329"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/ip_v4.rs
================================================
use super::RegexExt;
use crate::core::config::IpV4Config;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct IpV4Highlighter {
regex: Regex,
segment: Painter,
separator: Painter,
}
impl IpV4Highlighter {
pub fn new(config: IpV4Config) -> Result {
let pattern = r"(?x)\b
(?P\d{1,3})\.
(?P\d{1,3})\.
(?P\d{1,3})\.
(?P\d{1,3})
(?:/(?P\d{1,2}))?
\b";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
segment: Painter::new(config.number.into()),
separator: Painter::new(config.separator.into()),
})
}
}
impl Highlight for IpV4Highlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b'.', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
let names = ["o1", "o2", "o3", "o4"];
self.regex.replace_all_cow(input, |caps, buf| {
let valid_octets = names
.iter()
.all(|n| caps.name(n).unwrap().as_str().parse::().is_ok());
let valid_mask = caps
.name("mask")
.map_or(true, |ms| ms.as_str().parse::().is_ok_and(|v| v <= 32));
if valid_octets && valid_mask {
for (i, &n) in names.iter().enumerate() {
self.segment.paint(buf, caps.name(n).unwrap().as_str());
if i < 3 {
self.separator.paint(buf, ".");
}
}
if let Some(ms) = caps.name("mask") {
self.separator.paint(buf, "/");
self.segment.paint(buf, ms.as_str());
}
} else {
buf.push_str(caps.get(0).unwrap().as_str());
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_ipv4_highlighter_valid() {
let h = IpV4Highlighter::new(IpV4Config {
number: Style::new().fg(Color::Blue),
separator: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
(
"10.0.0.123",
"[blue]10[reset][red].[reset][blue]0[reset][red].[reset][blue]0[reset][red].[reset][blue]123[reset]",
),
(
"192.168.0.1/24",
"[blue]192[reset][red].[reset][blue]168[reset][red].[reset][blue]0[reset][red].[reset][blue]1[reset][red]/[reset][blue]24[reset]",
),
(
"0.0.0.0",
"[blue]0[reset][red].[reset][blue]0[reset][red].[reset][blue]0[reset][red].[reset][blue]0[reset]",
),
];
for (input, expect) in cases {
let actual = h.apply(input);
assert_eq!(expect, actual.to_string().convert_escape_codes());
}
}
#[test]
fn test_ipv4_highlighter_invalid_octet_or_mask() {
let h = IpV4Highlighter::new(IpV4Config {
number: Style::new().fg(Color::Blue),
separator: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
// octet >255
("256.1.1.1", "256.1.1.1"),
// octet >255
("999.999.999.999", "999.999.999.999"),
// mask >32
("192.168.0.1/33", "192.168.0.1/33"),
// partial (too few segments) shouldn’t match at all
("1.2.3", "1.2.3"),
];
for (input, expect) in cases {
let actual = h.apply(input);
assert_eq!(expect, actual);
}
}
}
================================================
FILE: src/core/highlighters/ip_v6.rs
================================================
use super::RegexExt;
use crate::core::config::IpV6Config;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
use std::net::Ipv6Addr;
pub struct IpV6Highlighter {
regex: Regex,
number: Painter,
letter: Painter,
separator: Painter,
}
impl IpV6Highlighter {
pub fn new(config: IpV6Config) -> Result {
let pattern = r#"([0-9a-fA-F:.]{3,})(?:(/)(\d{1,3}))?"#;
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
number: Painter::new(config.number.into()),
letter: Painter::new(config.letter.into()),
separator: Painter::new(config.separator.into()),
})
}
}
impl Highlight for IpV6Highlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b':', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
if caps[1].parse::().is_ok() {
let addr = &caps[1];
for (i, c) in addr.char_indices() {
let s = &addr[i..i + c.len_utf8()];
let painter = match c {
'0'..='9' => &self.number,
'a'..='f' | 'A'..='F' => &self.letter,
':' | '.' => &self.separator,
_ => {
buf.push(c);
continue;
}
};
painter.paint(buf, s);
}
if let (Some(slash), Some(netmask)) = (caps.get(2), caps.get(3)) {
self.separator.paint(buf, slash.as_str());
self.number.paint(buf, netmask.as_str());
}
} else {
buf.push_str(caps.get(0).unwrap().as_str());
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_ip_v6_highlighter() {
let highlighter = IpV6Highlighter::new(IpV6Config {
number: Style::new().fg(Color::Blue),
letter: Style::new().fg(Color::Yellow),
separator: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
(
"2001:db8:0:0:0:ff00:42:8329",
"[blue]2[reset][blue]0[reset][blue]0[reset][blue]1[reset][red]:[reset][yellow]d[reset][yellow]b[reset][blue]8[reset][red]:[reset][blue]0[reset][red]:[reset][blue]0[reset][red]:[reset][blue]0[reset][red]:[reset][yellow]f[reset][yellow]f[reset][blue]0[reset][blue]0[reset][red]:[reset][blue]4[reset][blue]2[reset][red]:[reset][blue]8[reset][blue]3[reset][blue]2[reset][blue]9[reset]",
),
(
"2001:db8::ff00:42:8329",
"[blue]2[reset][blue]0[reset][blue]0[reset][blue]1[reset][red]:[reset][yellow]d[reset][yellow]b[reset][blue]8[reset][red]:[reset][red]:[reset][yellow]f[reset][yellow]f[reset][blue]0[reset][blue]0[reset][red]:[reset][blue]4[reset][blue]2[reset][red]:[reset][blue]8[reset][blue]3[reset][blue]2[reset][blue]9[reset]",
),
("::1", "[red]:[reset][red]:[reset][blue]1[reset]"),
(
"2001:db8:85a3::8a2e:192.0.2.33",
"[blue]2[reset][blue]0[reset][blue]0[reset][blue]1[reset][red]:[reset][yellow]d[reset][yellow]b[reset][blue]8[reset][red]:[reset][blue]8[reset][blue]5[reset][yellow]a[reset][blue]3[reset][red]:[reset][red]:[reset][blue]8[reset][yellow]a[reset][blue]2[reset][yellow]e[reset][red]:[reset][blue]1[reset][blue]9[reset][blue]2[reset][red].[reset][blue]0[reset][red].[reset][blue]2[reset][red].[reset][blue]3[reset][blue]3[reset]",
),
(
"::ffff:127.0.0.1",
"[red]:[reset][red]:[reset][yellow]f[reset][yellow]f[reset][yellow]f[reset][yellow]f[reset][red]:[reset][blue]1[reset][blue]2[reset][blue]7[reset][red].[reset][blue]0[reset][red].[reset][blue]0[reset][red].[reset][blue]1[reset]",
),
(
"fe80::/10",
"[yellow]f[reset][yellow]e[reset][blue]8[reset][blue]0[reset][red]:[reset][red]:[reset][red]/[reset][blue]10[reset]",
),
("Not ipv4: 192.168.0.1", "Not ipv4: 192.168.0.1"),
("11:47:39:850", "11:47:39:850"),
("123/234/345/456", "123/234/345/456"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/json.rs
================================================
use crate::core::config::JsonConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use serde_json::Value;
use std::borrow::Cow;
use std::fmt::Write;
pub struct JsonHighlighter {
key: Painter,
quote_token: Painter,
curly_bracket: Painter,
square_bracket: Painter,
comma: Painter,
colon: Painter,
}
impl JsonHighlighter {
pub fn new(config: JsonConfig) -> Self {
Self {
key: Painter::new(config.key.into()),
quote_token: Painter::new(config.quote_token.into()),
curly_bracket: Painter::new(config.curly_bracket.into()),
square_bracket: Painter::new(config.square_bracket.into()),
comma: Painter::new(config.comma.into()),
colon: Painter::new(config.colon.into()),
}
}
fn format_json(&self, value: &Value, output: &mut String) {
match value {
Value::Object(map) => {
self.curly_bracket.paint(output, "{");
let mut first = true;
for (key, val) in map {
if !first {
self.comma.paint(output, ",");
}
first = false;
output.push(' ');
self.quote_token.paint(output, "\"");
self.key.paint(output, key);
self.quote_token.paint(output, "\"");
self.colon.paint(output, ":");
output.push(' ');
self.format_json(val, output);
}
output.push(' ');
self.curly_bracket.paint(output, "}");
}
Value::Array(array) => {
self.square_bracket.paint(output, "[");
let mut first = true;
for item in array {
if !first {
self.comma.paint(output, ",");
output.push(' ');
}
first = false;
self.format_json(item, output);
}
self.square_bracket.paint(output, "]");
}
Value::String(s) => {
self.quote_token.paint(output, "\"");
output.push_str(s);
self.quote_token.paint(output, "\"");
}
Value::Number(n) => {
write!(output, "{}", n).unwrap();
}
Value::Bool(b) => {
write!(output, "{}", b).unwrap();
}
Value::Null => {
output.push_str("null");
}
}
}
}
impl Highlight for JsonHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
let first = input.as_bytes().iter().find(|b| !b.is_ascii_whitespace());
if first != Some(&b'{') && first != Some(&b'[') {
return Cow::Borrowed(input);
}
let json_value: Value = match serde_json::from_str(input) {
Ok(value) => value,
Err(_) => return Cow::Borrowed(input),
};
let mut output = String::with_capacity(input.len() * 2);
self.format_json(&json_value, &mut output);
Cow::Owned(output)
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_number_highlighter() {
let config = JsonConfig {
key: Style::new().fg(Color::Yellow),
quote_token: Style::new().fg(Color::Blue),
curly_bracket: Style::new().fg(Color::Cyan),
square_bracket: Style::new().fg(Color::Green),
comma: Style::new().fg(Color::Red),
colon: Style::new().fg(Color::Magenta),
};
let highlighter = JsonHighlighter::new(config);
let cases = vec![
(
r#"{ "name": "John Doe", "age": 43, "phones": [ "+44 1234567", "+44 2345678" ] }"#,
r#"[cyan]{[reset] [blue]"[reset][yellow]name[reset][blue]"[reset][magenta]:[reset] [blue]"[reset]John Doe[blue]"[reset][red],[reset] [blue]"[reset][yellow]age[reset][blue]"[reset][magenta]:[reset] 43[red],[reset] [blue]"[reset][yellow]phones[reset][blue]"[reset][magenta]:[reset] [green][[reset][blue]"[reset]+44 1234567[blue]"[reset][red],[reset] [blue]"[reset]+44 2345678[blue]"[reset][green]][reset] [cyan]}[reset]"#,
),
(
r#"{ "name": "John", "age": 30 }"#,
r#"[cyan]{[reset] [blue]"[reset][yellow]name[reset][blue]"[reset][magenta]:[reset] [blue]"[reset]John[blue]"[reset][red],[reset] [blue]"[reset][yellow]age[reset][blue]"[reset][magenta]:[reset] 30 [cyan]}[reset]"#,
),
("No jsons here!", "No jsons here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/key_value.rs
================================================
use super::RegexExt;
use crate::core::config::KeyValueConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct KeyValueHighlighter {
regex: Regex,
key: Painter,
separator: Painter,
}
impl KeyValueHighlighter {
pub fn new(config: KeyValueConfig) -> Result {
let pattern = r"(?P(^)|\s)(?P\w+\b)(?P=)";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
key: Painter::new(config.key.into()),
separator: Painter::new(config.separator.into()),
})
}
}
impl Highlight for KeyValueHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b'=', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
let space_or_start = caps.name("space_or_start").map(|s| s.as_str()).unwrap_or_default();
buf.push_str(space_or_start);
if let Some(k) = caps.name("key") {
self.key.paint(buf, k.as_str());
}
if let Some(e) = caps.name("equals") {
self.separator.paint(buf, e.as_str());
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_number_highlighter() {
let highlighter = KeyValueHighlighter::new(KeyValueConfig {
key: Style::new().fg(Color::Red),
separator: Style::new().fg(Color::Yellow),
})
.unwrap();
let cases = vec![
("Entry key=value", "Entry [red]key[reset][yellow]=[reset]value"),
("No numbers here!", "No numbers here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/keyword.rs
================================================
use crate::core::config::KeywordConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use aho_corasick::{AhoCorasick, AhoCorasickBuilder, BuildError, MatchKind};
use std::borrow::Cow;
pub struct KeywordHighlighter {
ac: AhoCorasick,
style: Painter,
has_background: bool,
}
impl KeywordHighlighter {
pub fn new(keyword_config: KeywordConfig) -> Result {
let ac = AhoCorasickBuilder::new()
.match_kind(MatchKind::LeftmostFirst)
.build(&keyword_config.words)?;
let has_background = keyword_config.style.bg.is_some();
Ok(Self {
ac,
style: Painter::new(keyword_config.style.into()),
has_background,
})
}
}
fn is_word_byte(b: u8) -> bool {
b.is_ascii_uppercase() || b.is_ascii_lowercase() || b.is_ascii_digit() || b == b'_'
}
fn is_word_boundary(hay: &[u8], start: usize, end: usize) -> bool {
let left_ok = start == 0 || !is_word_byte(hay[start - 1]);
let right_ok = end == hay.len() || !is_word_byte(hay[end]);
left_ok && right_ok
}
impl Highlight for KeywordHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
let bytes = input.as_bytes();
let mut out: Option = None;
let mut last = 0;
for m in self.ac.find_iter(bytes) {
let (s, e) = (m.start(), m.end());
if !is_word_boundary(bytes, s, e) {
continue;
}
let out_buf = out.get_or_insert_with(|| String::with_capacity(input.len() + 16));
out_buf.push_str(&input[last..s]);
if !self.has_background {
self.style.paint(out_buf, &input[s..e]);
} else {
self.style.paint_with_padding(out_buf, &input[s..e]);
}
last = e;
}
match out {
None => Cow::Borrowed(input),
Some(mut s) => {
s.push_str(&input[last..]);
Cow::Owned(s)
}
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_foreground_keyword_highlighter() {
let config = KeywordConfig {
words: vec!["null".to_string()],
style: Style::new().fg(Color::Red),
};
let highlighter = KeywordHighlighter::new(config).unwrap();
let cases = vec![
("Hello null world", "Hello [red]null[reset] world"),
(
"There are 1001 nights in the tale.",
"There are 1001 nights in the tale.",
),
("No numbers here!", "No numbers here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
#[test]
fn test_background_keyword_highlighter() {
let config = KeywordConfig {
words: vec!["null".to_string()],
style: Style::new().on(Color::Red),
};
let highlighter = KeywordHighlighter::new(config).unwrap();
let cases = vec![
("Hello null world", "Hello [bg_red] null [reset] world"),
(
"There are 1001 nights in the tale.",
"There are 1001 nights in the tale.",
),
("No numbers here!", "No numbers here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/mod.rs
================================================
use crate::core::highlighter::Highlight;
use crate::core::highlighters::date_dash::DateDashHighlighter;
use crate::core::highlighters::date_time::TimeHighlighter;
use crate::core::highlighters::ip_v4::IpV4Highlighter;
use crate::core::highlighters::ip_v6::IpV6Highlighter;
use crate::core::highlighters::json::JsonHighlighter;
use crate::core::highlighters::key_value::KeyValueHighlighter;
use crate::core::highlighters::keyword::KeywordHighlighter;
use crate::core::highlighters::number::NumberHighlighter;
use crate::core::highlighters::pointer::PointerHighlighter;
use crate::core::highlighters::quote::QuoteHighlighter;
use crate::core::highlighters::regex::RegexpHighlighter;
use crate::core::highlighters::unix_path::UnixPathHighlighter;
use crate::core::highlighters::unix_process::UnixProcessHighlighter;
use crate::core::highlighters::url::UrlHighlighter;
use crate::core::highlighters::uuid::UuidHighlighter;
use ::regex::{Captures, Regex};
use nu_ansi_term::Style as NuStyle;
use std::borrow::Cow;
const RESET: &str = "\x1b[0m";
/// Pre-computed ANSI escape prefix for a style. Avoids the `Display` dispatch
/// of `style.paint(s)` on every call by writing `prefix + s + RESET` directly.
pub(crate) struct Painter {
prefix: String,
}
impl Painter {
pub fn new(style: NuStyle) -> Self {
let styled = format!("{}", style.paint(""));
let prefix = styled.replace(RESET, "");
Self { prefix }
}
#[inline]
pub fn paint(&self, buf: &mut String, s: &str) {
if self.prefix.is_empty() {
buf.push_str(s);
} else {
buf.push_str(&self.prefix);
buf.push_str(s);
buf.push_str(RESET);
}
}
#[inline]
pub fn paint_with_padding(&self, buf: &mut String, s: &str) {
if self.prefix.is_empty() {
buf.push(' ');
buf.push_str(s);
buf.push(' ');
} else {
buf.push_str(&self.prefix);
buf.push(' ');
buf.push_str(s);
buf.push(' ');
buf.push_str(RESET);
}
}
}
pub mod date_dash;
pub mod date_time;
pub mod ip_v4;
pub mod ip_v6;
pub mod json;
pub mod key_value;
pub mod keyword;
pub mod number;
pub mod pointer;
pub mod quote;
pub mod regex;
pub mod unix_path;
pub mod unix_process;
pub mod url;
pub mod uuid;
/// Extension trait for `Regex` that provides a zero-alloc alternative to
/// `replace_all`. Writes directly into a single buffer instead of allocating
/// a `String` per match, and returns `Cow::Borrowed` when there are no matches.
pub(crate) trait RegexExt {
fn replace_all_cow<'a, F>(&self, input: &'a str, replacer: F) -> Cow<'a, str>
where
F: FnMut(&Captures<'_>, &mut String);
}
impl RegexExt for Regex {
fn replace_all_cow<'a, F>(&self, input: &'a str, mut replacer: F) -> Cow<'a, str>
where
F: FnMut(&Captures<'_>, &mut String),
{
let mut out: Option = None;
let mut last = 0usize;
for caps in self.captures_iter(input) {
let m = caps.get(0).unwrap();
let buf = out.get_or_insert_with(|| String::with_capacity(input.len() + 32));
buf.push_str(&input[last..m.start()]);
replacer(&caps, buf);
last = m.end();
}
match out {
Some(mut buf) => {
buf.push_str(&input[last..]);
Cow::Owned(buf)
}
None => Cow::Borrowed(input),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn painter_prefix_ends_with_reset() {
let style = NuStyle {
foreground: Some(nu_ansi_term::Color::Red),
..Default::default()
};
let styled = format!("{}", style.paint(""));
assert!(
styled.ends_with(RESET),
"nu_ansi_term output must end with RESET: {styled:?}"
);
}
#[test]
fn painter_default_style_produces_empty_prefix() {
let painter = Painter::new(NuStyle::default());
assert!(painter.prefix.is_empty());
}
#[test]
fn painter_paint_roundtrip() {
let painter = Painter::new(NuStyle {
foreground: Some(nu_ansi_term::Color::Green),
..Default::default()
});
let mut buf = String::new();
painter.paint(&mut buf, "hello");
assert!(buf.starts_with("\x1b["));
assert!(buf.ends_with(RESET));
assert!(buf.contains("hello"));
}
}
pub enum StaticHighlight {
DateDash(DateDashHighlighter),
Time(TimeHighlighter),
IpV4(IpV4Highlighter),
IpV6(IpV6Highlighter),
Json(JsonHighlighter),
KeyValue(KeyValueHighlighter),
Keyword(KeywordHighlighter),
Number(NumberHighlighter),
Pointer(PointerHighlighter),
Quote(QuoteHighlighter),
Regexp(RegexpHighlighter),
UnixPath(UnixPathHighlighter),
UnixProcess(UnixProcessHighlighter),
Url(UrlHighlighter),
Uuid(UuidHighlighter),
}
impl StaticHighlight {
pub fn needs_full_input(&self) -> bool {
matches!(self, StaticHighlight::Quote(_))
}
}
impl Highlight for StaticHighlight {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
match self {
StaticHighlight::DateDash(h) => h.apply(input),
StaticHighlight::Time(h) => h.apply(input),
StaticHighlight::IpV4(h) => h.apply(input),
StaticHighlight::IpV6(h) => h.apply(input),
StaticHighlight::Json(h) => h.apply(input),
StaticHighlight::KeyValue(h) => h.apply(input),
StaticHighlight::Keyword(h) => h.apply(input),
StaticHighlight::Number(h) => h.apply(input),
StaticHighlight::Pointer(h) => h.apply(input),
StaticHighlight::Quote(h) => h.apply(input),
StaticHighlight::Regexp(h) => h.apply(input),
StaticHighlight::UnixPath(h) => h.apply(input),
StaticHighlight::UnixProcess(h) => h.apply(input),
StaticHighlight::Url(h) => h.apply(input),
StaticHighlight::Uuid(h) => h.apply(input),
}
}
}
================================================
FILE: src/core/highlighters/number.rs
================================================
use crate::core::config::NumberConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct NumberHighlighter {
regex: Regex,
style: Painter,
}
impl NumberHighlighter {
pub fn new(config: NumberConfig) -> Result {
let pattern = r"(?x)
\b # start of number
\d+ # integer part
(?:\.\d+)? # optional fractional
\b # end of number
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
style: Painter::new(config.style.into()),
})
}
}
impl Highlight for NumberHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
let mut it = self.regex.find_iter(input).peekable();
if it.peek().is_none() {
return Cow::Borrowed(input);
}
let mut out = String::with_capacity(input.len() + 32);
let mut last = 0usize;
for m in it {
out.push_str(&input[last..m.start()]);
self.style.paint(&mut out, &input[m.start()..m.end()]);
last = m.end();
}
out.push_str(&input[last..]);
Cow::Owned(out)
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_number_highlighter() {
let highlighter = NumberHighlighter::new(NumberConfig {
style: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
(
"The fox jumps over 13 dogs. The number 42.5 is here.",
"The fox jumps over [red]13[reset] dogs. The number [red]42.5[reset] is here.",
),
(
"There are 1001 nights in the tale.",
"There are [red]1001[reset] nights in the tale.",
),
("No numbers here!", "No numbers here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/pointer.rs
================================================
use super::RegexExt;
use crate::core::config::PointerConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr2;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct PointerHighlighter {
regex: Regex,
number: Painter,
letter: Painter,
separator: Painter,
separator_token_str: String,
x: Painter,
}
impl PointerHighlighter {
pub fn new(config: PointerConfig) -> Result {
let pattern = r"(?ix)
\b
(?P0x)
(?P[0-9a-fA-F]{8})
\b
|
\b
(?P0x)
(?P[0-9a-fA-F]{8})
(?P[0-9a-fA-F]{8})
\b
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
number: Painter::new(config.number.into()),
letter: Painter::new(config.letter.into()),
separator: Painter::new(config.separator.into()),
separator_token_str: config.separator_token.to_string(),
x: Painter::new(config.x.into()),
})
}
}
impl PointerHighlighter {
fn write_hex_chars(&self, buf: &mut String, text: &str) {
for (i, c) in text.char_indices() {
let s = &text[i..i + c.len_utf8()];
let painter = match c {
'0'..='9' => &self.number,
'x' | 'X' => &self.x,
'a'..='f' | 'A'..='F' => &self.letter,
_ => {
buf.push(c);
continue;
}
};
painter.paint(buf, s);
}
}
}
impl Highlight for PointerHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr2(b'x', b'X', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
let prefix = caps.name("prefix").or_else(|| caps.name("prefix64")).unwrap().as_str();
let first_half = caps
.name("first_half")
.or_else(|| caps.name("first_half64"))
.unwrap()
.as_str();
self.write_hex_chars(buf, prefix);
self.write_hex_chars(buf, first_half);
if let Some(second_half) = caps.name("second_half") {
self.separator.paint(buf, &self.separator_token_str);
self.write_hex_chars(buf, second_half.as_str());
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_pointer_highlighter() {
let highlighter = PointerHighlighter::new(PointerConfig {
number: Style::new().fg(Color::Blue),
letter: Style::new().fg(Color::Magenta),
separator: Style::new().fg(Color::Green),
separator_token: '•',
x: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
(
"0x8c2a0aeb",
"[blue]0[reset][red]x[reset][blue]8[reset][magenta]c[reset][blue]2[reset][magenta]a[reset][blue]0[reset][magenta]a[reset][magenta]e[reset][magenta]b[reset]",
),
(
"0xd7b3b2f446e2c21b",
"[blue]0[reset][red]x[reset][magenta]d[reset][blue]7[reset][magenta]b[reset][blue]3[reset][magenta]b[reset][blue]2[reset][magenta]f[reset][blue]4[reset][green]•[reset][blue]4[reset][blue]6[reset][magenta]e[reset][blue]2[reset][magenta]c[reset][blue]2[reset][blue]1[reset][magenta]b[reset]",
),
("No numbers here!", "No numbers here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/quote.rs
================================================
use memchr::memchr_iter;
use nu_ansi_term::Style as NuStyle;
use std::borrow::Cow;
use crate::core::config::QuotesConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::quote::State::{InsideQuote, OutsideQuote};
use crate::style::Style;
const RESET: &str = "\x1b[0m";
pub struct QuoteHighlighter {
quotes_token: u8,
color: String,
}
impl QuoteHighlighter {
pub fn new(config: QuotesConfig) -> Self {
let color = ansi_color_code_without_reset(config.style);
Self {
quotes_token: config.quotes_token,
color,
}
}
}
fn ansi_color_code_without_reset(style: Style) -> String {
let nu_style = NuStyle::from(style);
let styled_str = format!("{}", nu_style.paint(""));
styled_str.replace(RESET, "")
}
impl Highlight for QuoteHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
let quotes_count = memchr_iter(self.quotes_token, input.as_bytes()).count();
if quotes_count == 0 || quotes_count % 2 != 0 {
return Cow::Borrowed(input);
}
let mut state = OutsideQuote;
let mut output = String::with_capacity(input.len());
for ch in input.chars() {
match &mut state {
InsideQuote { potential_reset_code } => {
if ch == self.quotes_token as char {
// Flush any partially accumulated escape sequence.
output.push_str(potential_reset_code);
// End of a quoted segment: insert the closing quote and reset.
output.push(ch);
output.push_str(RESET);
state = OutsideQuote;
continue;
}
// Accumulate characters to see if we are matching a reset sequence.
potential_reset_code.push(ch);
if potential_reset_code.as_str() == RESET {
output.push_str(potential_reset_code);
output.push_str(&self.color);
potential_reset_code.clear();
} else if !RESET.starts_with(potential_reset_code.as_str()) {
// The accumulated characters do not form the reset code.
output.push_str(potential_reset_code);
potential_reset_code.clear();
}
}
OutsideQuote => {
if ch == self.quotes_token as char {
// Start of a quoted segment: insert the color code and the quote.
output.push_str(&self.color);
output.push(ch);
state = InsideQuote {
potential_reset_code: String::with_capacity(RESET.len()),
};
continue;
}
output.push(ch);
}
}
}
Cow::Owned(output)
}
}
enum State {
InsideQuote { potential_reset_code: String },
OutsideQuote,
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::{ConvertEscapeCodes, ConvertHighlightCodes};
use crate::style::{Color, Style};
#[test]
fn test_multiple() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let cases = vec![
(
r#"Lorem ipsum "dolor" sit amet"#,
r#"Lorem ipsum [yellow]"dolor"[reset] sit amet"#,
),
(
r#"Lorem ipsum dolor sit amet, consectetur adipiscing elit"#,
r#"Lorem ipsum dolor sit amet, consectetur adipiscing elit"#,
),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
#[test]
fn test_no_overwrite() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#"Hello "abc [red]def[reset] ghi" World"#.to_string().convert_highlight_codes();
let expected = r#"Hello [yellow]"abc [red]def[reset][yellow] ghi"[reset] World"#;
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_odd_number_of_highlight_tokens() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#"Hello "abc def ghi World"#;
let expected = r#"Hello "abc def ghi World"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_preserves_multiple_highlights_inside_quotes() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#"Log "abc [red]error[reset] then [cyan]42[reset] end" done"#
.to_string()
.convert_highlight_codes();
let expected = r#"Log [yellow]"abc [red]error[reset][yellow] then [cyan]42[reset][yellow] end"[reset] done"#;
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_highlight_at_start_of_quote() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#""[red]error[reset] occurred""#.to_string().convert_highlight_codes();
let expected = r#"[yellow]"[red]error[reset][yellow] occurred"[reset]"#;
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_highlight_at_end_of_quote() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#""something [red]error[reset]""#.to_string().convert_highlight_codes();
let expected = r#"[yellow]"something [red]error[reset][yellow]"[reset]"#;
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_no_highlights_inside_quotes() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#"Hello "plain text" world"#;
let expected = r#"Hello [yellow]"plain text"[reset] world"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_adjacent_quoted_strings() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#""hello""world""#;
let expected = r#"[yellow]"hello"[reset][yellow]"world"[reset]"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_empty_quoted_string() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#"before "" after"#;
let expected = r#"before [yellow]""[reset] after"#;
let actual = highlighter.apply(input);
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_entirely_highlighted_content_inside_quotes() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'"',
style: Style::new().fg(Color::Yellow),
});
let input = r#""[red]error[reset]""#.to_string().convert_highlight_codes();
let expected = r#"[yellow]"[red]error[reset][yellow]"[reset]"#;
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
#[test]
fn test_single_quote_token() {
let highlighter = QuoteHighlighter::new(QuotesConfig {
quotes_token: b'\'',
style: Style::new().fg(Color::Yellow),
});
let input = "msg 'hello [red]world[reset] end' done"
.to_string()
.convert_highlight_codes();
let expected = "msg [yellow]'hello [red]world[reset][yellow] end'[reset] done";
let actual = highlighter.apply(input.as_str());
assert_eq!(actual.to_string().convert_escape_codes(), expected);
}
}
================================================
FILE: src/core/highlighters/regex.rs
================================================
use crate::core::config::RegexConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use regex::{Error, Regex};
use std::borrow::Cow;
pub struct RegexpHighlighter {
regex: Regex,
style: Painter,
}
impl RegexpHighlighter {
/// This constructor takes a regular expression pattern and a `Style` object,
/// returning a `RegexpHighlighter` that will apply the specified style
/// to any text matching the regular expression.
///
/// It supports one capture group `()`. When found, it will apply the style to the captured text.
///
/// (If you are just interested in highlighting a specific keyword, you can use the simpler `KeywordHighlighter`
/// instead.)
/// # Example
///
/// Given the regular expression pattern `'Started (.*)\.'`, the highlighter will
/// apply the style to any text that matches the pattern within the capture group.
/// For example, in the text `'Started process.'`, only the word `'process'` will be styled.
///
pub fn new(config: RegexConfig) -> Result {
Ok(Self {
regex: Regex::new(config.regex.as_str())?,
style: Painter::new(config.style.into()),
})
}
}
impl Highlight for RegexpHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
let capture_groups = self.regex.captures_len() - 1;
let mut caps_iter = self.regex.captures_iter(input).peekable();
if caps_iter.peek().is_none() {
return Cow::Borrowed(input);
}
let mut new_string = String::with_capacity(input.len() + 32);
let mut last_end = 0;
for caps in caps_iter {
if let Some(entire_match) = caps.get(0) {
new_string.push_str(&input[last_end..entire_match.start()]);
match capture_groups {
1 => {
if let Some(captured) = caps.get(1) {
new_string.push_str(&input[entire_match.start()..captured.start()]);
self.style.paint(&mut new_string, captured.as_str());
new_string.push_str(&input[captured.end()..entire_match.end()]);
} else {
self.style.paint(&mut new_string, entire_match.as_str());
}
}
_ => {
self.style.paint(&mut new_string, entire_match.as_str());
}
}
last_end = entire_match.end();
}
}
new_string.push_str(&input[last_end..]);
Cow::Owned(new_string)
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
fn make_highlighter(pattern: &str) -> RegexpHighlighter {
let config = RegexConfig {
regex: pattern.to_string(),
style: Style::new().fg(Color::Red),
};
RegexpHighlighter::new(config).unwrap()
}
#[test]
fn test_optional_capture_group_not_participating() {
// Pattern with one optional capture group: group 1 participates
// only when "error" is present
let highlighter = make_highlighter(r"(error)?warning");
// When the capture group does NOT participate, the matched text
// ("warning") must still appear in the output.
let result = highlighter.apply("got a warning here");
let readable = result.to_string().convert_escape_codes();
assert_eq!(readable, "got a [red]warning[reset] here");
// When the capture group DOES participate, only it is styled.
let result = highlighter.apply("got a errorwarning here");
let readable = result.to_string().convert_escape_codes();
assert_eq!(readable, "got a [red]error[reset]warning here");
}
}
================================================
FILE: src/core/highlighters/unix_path.rs
================================================
use super::RegexExt;
use crate::core::config::UnixPathConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct UnixPathHighlighter {
regex: Regex,
segment: Painter,
separator: Painter,
}
impl UnixPathHighlighter {
pub fn new(config: UnixPathConfig) -> Result {
let pattern = r"(?x)
(?:^|\s)
(?P
(?:\./|~/|//|/)
[\w.-]+
(?:/[\w.-]+)+
)
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
segment: Painter::new(config.segment.into()),
separator: Painter::new(config.separator.into()),
})
}
}
impl Highlight for UnixPathHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b'/', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
let full = caps.get(0).unwrap().as_str();
let path = &caps["path"];
// Preserve any leading whitespace that was part of the match
if full.len() > path.len() {
buf.push_str(&full[..full.len() - path.len()]);
}
let mut seg_start = None;
for (i, ch) in path.char_indices() {
if ch == '/' {
if let Some(start) = seg_start.take() {
self.segment.paint(buf, &path[start..i]);
}
self.separator.paint(buf, "/");
} else if seg_start.is_none() {
seg_start = Some(i);
}
}
if let Some(start) = seg_start {
self.segment.paint(buf, &path[start..]);
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_unix_path_highlighter() {
let highlighter = UnixPathHighlighter::new(UnixPathConfig {
segment: Style::new().fg(Color::Green),
separator: Style::new().fg(Color::Yellow),
})
.unwrap();
let cases = vec![
("a//b", "a//b"),
("a/b", "a/b"),
("name/name", "name/name"),
("a/b/c", "a/b/c"),
("justtext", "justtext"),
("README.md", "README.md"),
(
"//network/share",
"[yellow]/[reset][yellow]/[reset][green]network[reset][yellow]/[reset][green]share[reset]",
),
(
"/user/local",
"[yellow]/[reset][green]user[reset][yellow]/[reset][green]local[reset]",
),
("123/234/345/456", "123/234/345/456"),
(
"~/projects/rust/tailspin",
"[green]~[reset][yellow]/[reset][green]projects[reset][yellow]/[reset][green]rust[reset][yellow]/[reset][green]tailspin[reset]",
),
(
"./a/b",
"[green].[reset][yellow]/[reset][green]a[reset][yellow]/[reset][green]b[reset]",
),
(
"/var/log/nginx/error.log",
"[yellow]/[reset][green]var[reset][yellow]/[reset][green]log[reset][yellow]/[reset][green]nginx[reset][yellow]/[reset][green]error.log[reset]",
),
(
"/path/.hidden/file",
"[yellow]/[reset][green]path[reset][yellow]/[reset][green].hidden[reset][yellow]/[reset][green]file[reset]",
),
(
"/usr/local/",
"[yellow]/[reset][green]usr[reset][yellow]/[reset][green]local[reset]/",
),
(
"See /etc/hosts please",
"See [yellow]/[reset][green]etc[reset][yellow]/[reset][green]hosts[reset] please",
),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/unix_process.rs
================================================
use super::RegexExt;
use crate::core::config::UnixProcessConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct UnixProcessHighlighter {
regex: Regex,
name: Painter,
id: Painter,
bracket: Painter,
}
impl UnixProcessHighlighter {
pub fn new(config: UnixProcessConfig) -> Result {
let pattern = r"(?P\([A-Za-z0-9._ +:/-]+\)|[A-Za-z0-9_/-]+)\[(?P\d+)]";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
name: Painter::new(config.name.into()),
id: Painter::new(config.id.into()),
bracket: Painter::new(config.bracket.into()),
})
}
}
impl Highlight for UnixProcessHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if memchr(b'[', input.as_bytes()).is_none() {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
if let Some(p) = caps.name("process_name") {
self.name.paint(buf, p.as_str());
}
self.bracket.paint(buf, "[");
if let Some(n) = caps.name("process_id") {
self.id.paint(buf, n.as_str());
}
self.bracket.paint(buf, "]");
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_unix_process_highlighter() {
let highlighter = UnixProcessHighlighter::new(UnixProcessConfig {
name: Style::new().fg(Color::Magenta),
id: Style::new().fg(Color::Green),
bracket: Style::new().fg(Color::Blue),
})
.unwrap();
let cases = vec![
(
"process[1]",
"[magenta]process[reset][blue][[reset][green]1[reset][blue]][reset]",
),
(
"postfix/postscreen[1894]: CONNECT from [192.168.1.22]:12345 to [127.0.0.1]:25",
"[magenta]postfix/postscreen[reset][blue][[reset][green]1894[reset][blue]][reset]: CONNECT from [192.168.1.22]:12345 to [127.0.0.1]:25",
),
("No process here!", "No process here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/highlighters/url.rs
================================================
use super::RegexExt;
use crate::core::config::UrlConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct UrlHighlighter {
url_regex: Regex,
query_params_regex: Regex,
http: Painter,
https: Painter,
host: Painter,
path: Painter,
query_params_key: Painter,
query_params_value: Painter,
symbols: Painter,
}
impl UrlHighlighter {
pub fn new(config: UrlConfig) -> Result {
let url_pattern = r"(?x)
(?Phttps?) (:) (//)
(?P[A-Za-z0-9._\-]+)
(?P(?:/[A-Za-z0-9._~\-/%+()]*)?) # common URL-safe chars incl parens
(?P\?[A-Za-z0-9._~\-/%+&=;,@!*()?:]*)? # include &= and friends";
let url_regex = RegexBuilder::new(url_pattern).unicode(false).build()?;
let query_params_pattern = r"(?x)
(?P[?&])
(?P [A-Za-z0-9._~\-+%]*) # allow common URL-safe chars
(?P =)
(?P [A-Za-z0-9._~\-+%]*)";
let query_params_regex = RegexBuilder::new(query_params_pattern).unicode(false).build()?;
Ok(Self {
url_regex,
query_params_regex,
http: Painter::new(config.http.into()),
https: Painter::new(config.https.into()),
host: Painter::new(config.host.into()),
path: Painter::new(config.path.into()),
query_params_key: Painter::new(config.query_params_key.into()),
query_params_value: Painter::new(config.query_params_value.into()),
symbols: Painter::new(config.symbols.into()),
})
}
}
/// Count how many trailing `)` characters are unbalanced within the given string.
///
/// Returns the number of excess trailing `)` that should be stripped from the URL match.
/// For example:
/// - `"/wiki/Foo_(bar)"` → 0 (balanced)
/// - `"https://example.com)"` → 1 (one unbalanced trailing paren)
/// - `"/wiki/Foo_(bar))"` → 1 (one unbalanced trailing paren)
fn count_unbalanced_trailing_parens(s: &str) -> usize {
let open = s.chars().filter(|&c| c == '(').count();
let close = s.chars().filter(|&c| c == ')').count();
if close <= open {
return 0;
}
let excess = close - open;
let trailing = s.len() - s.trim_end_matches(')').len();
trailing.min(excess)
}
impl Highlight for UrlHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
self.url_regex.replace_all_cow(input, |caps, buf| {
let full_match = caps.get(0).unwrap().as_str();
let trim_count = count_unbalanced_trailing_parens(full_match);
if let Some(protocol) = caps.name("protocol") {
let painter = match protocol.as_str() {
"http" => &self.http,
"https" => &self.https,
_ => &self.http,
};
painter.paint(buf, protocol.as_str());
buf.push_str("://");
}
if let Some(host) = caps.name("host") {
self.host.paint(buf, host.as_str());
}
if let Some(path) = caps.name("path") {
let path_str = path.as_str();
if caps.name("query").is_none() && trim_count > 0 {
let trimmed = &path_str[..path_str.len() - trim_count];
self.path.paint(buf, trimmed);
} else {
self.path.paint(buf, path_str);
}
}
if let Some(query) = caps.name("query") {
let query_str = if trim_count > 0 {
&query.as_str()[..query.as_str().len() - trim_count]
} else {
query.as_str()
};
let mut last = 0usize;
for query_caps in self.query_params_regex.captures_iter(query_str) {
let m = query_caps.get(0).unwrap();
buf.push_str(&query_str[last..m.start()]);
let delimiter = query_caps.name("delimiter").map_or("", |m| m.as_str());
let key = query_caps.name("key").map_or("", |m| m.as_str());
let equal = query_caps.name("equal").map_or("", |m| m.as_str());
let value = query_caps.name("value").map_or("", |m| m.as_str());
self.symbols.paint(buf, delimiter);
self.query_params_key.paint(buf, key);
self.symbols.paint(buf, equal);
self.query_params_value.paint(buf, value);
last = m.end();
}
buf.push_str(&query_str[last..]);
}
// Append unbalanced trailing parens outside the highlighted URL
for _ in 0..trim_count {
buf.push(')');
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
fn make_highlighter() -> UrlHighlighter {
UrlHighlighter::new(UrlConfig {
http: Style::new().fg(Color::Yellow),
https: Style::new().fg(Color::White),
host: Style::new().fg(Color::Green),
path: Style::new().fg(Color::Blue),
query_params_key: Style::new().fg(Color::Magenta),
query_params_value: Style::new().fg(Color::Cyan),
symbols: Style::new().fg(Color::Red),
})
.unwrap()
}
#[test]
fn test_url_highlighter() {
let highlighter = make_highlighter();
let cases = vec![
(
"https://www.openai.com/docs/api?apikey=abc123",
"[white]https[reset]://[green]www.openai.com[reset][blue]/docs/api[reset][red]?[reset][magenta]apikey[reset][red]=[reset][cyan]abc123[reset]",
),
(
"https://api.example.org/api/v1/users?name=JohnDoe",
"[white]https[reset]://[green]api.example.org[reset][blue]/api/v1/users[reset][red]?[reset][magenta]name[reset][red]=[reset][cyan]JohnDoe[reset]",
),
(
"http://example.com/path/to/resource?param1=value1¶m2=value2",
"[yellow]http[reset]://[green]example.com[reset][blue]/path/to/resource[reset][red]?[reset][magenta]param1[reset][red]=[reset][cyan]value1[reset][red]&[reset][magenta]param2[reset][red]=[reset][cyan]value2[reset]",
),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
#[test]
fn test_url_with_balanced_parens_in_path() {
let highlighter = make_highlighter();
// Wikipedia-style URL with balanced parentheses
let input = "https://en.wikipedia.org/wiki/Foo_(bar)";
let expected = "[white]https[reset]://[green]en.wikipedia.org[reset][blue]/wiki/Foo_(bar)[reset]";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_wrapped_in_parens() {
let highlighter = make_highlighter();
// URL surrounded by parentheses — trailing ) should not be highlighted
let input = "(https://example.com/path)";
let expected = "([white]https[reset]://[green]example.com[reset][blue]/path[reset])";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_with_balanced_parens_wrapped_in_parens() {
let highlighter = make_highlighter();
// Wikipedia URL inside parentheses — inner parens balanced, outer ) excluded
let input = "(https://en.wikipedia.org/wiki/Foo_(bar))";
let expected = "([white]https[reset]://[green]en.wikipedia.org[reset][blue]/wiki/Foo_(bar)[reset])";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_with_query_wrapped_in_parens() {
let highlighter = make_highlighter();
// URL with query string inside parentheses
let input = "(https://example.com/path?key=value)";
let expected = "([white]https[reset]://[green]example.com[reset][blue]/path[reset][red]?[reset][magenta]key[reset][red]=[reset][cyan]value[reset])";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_not_wrapped_no_parens() {
let highlighter = make_highlighter();
// Plain URL without any parentheses — nothing to trim
let input = "https://example.com/path";
let expected = "[white]https[reset]://[green]example.com[reset][blue]/path[reset]";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_single_quote_not_included() {
let highlighter = make_highlighter();
// URL wrapped in single quotes — quote should not be part of URL
let input = "'https://example.com/path'";
let expected = "'[white]https[reset]://[green]example.com[reset][blue]/path[reset]'";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_multiple_parenthesized_urls_on_one_line() {
let highlighter = make_highlighter();
let input = "(https://a.com) and (https://b.com)";
let expected = "([white]https[reset]://[green]a.com[reset][blue][reset]) and ([white]https[reset]://[green]b.com[reset][blue][reset])";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_with_parens_in_query_string() {
let highlighter = make_highlighter();
let input = "https://example.com/api?filter=(name)";
let expected = "[white]https[reset]://[green]example.com[reset][blue]/api[reset][red]?[reset][magenta]filter[reset][red]=[reset][cyan][reset](name)";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_double_wrapped_in_parens() {
let highlighter = make_highlighter();
let input = "((https://example.com))";
let expected = "(([white]https[reset]://[green]example.com[reset][blue][reset]))";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_url_with_nested_parens_in_path() {
let highlighter = make_highlighter();
let input = "https://en.wikipedia.org/wiki/Foo_(bar_(baz))";
let expected = "[white]https[reset]://[green]en.wikipedia.org[reset][blue]/wiki/Foo_(bar_(baz))[reset]";
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
#[test]
fn test_count_unbalanced_trailing_parens() {
assert_eq!(count_unbalanced_trailing_parens("no parens"), 0);
assert_eq!(count_unbalanced_trailing_parens("/wiki/Foo_(bar)"), 0);
assert_eq!(count_unbalanced_trailing_parens("https://example.com)"), 1);
assert_eq!(count_unbalanced_trailing_parens("https://example.com))"), 2);
assert_eq!(count_unbalanced_trailing_parens("/wiki/Foo_(bar))"), 1);
assert_eq!(count_unbalanced_trailing_parens("/a_(b)_(c))"), 1);
}
}
================================================
FILE: src/core/highlighters/uuid.rs
================================================
use super::RegexExt;
use crate::core::config::UuidConfig;
use crate::core::highlighter::Highlight;
use crate::core::highlighters::Painter;
use memchr::memchr;
use regex::{Error, Regex, RegexBuilder};
use std::borrow::Cow;
pub struct UuidHighlighter {
regex: Regex,
number: Painter,
letter: Painter,
dash: Painter,
}
impl UuidHighlighter {
pub fn new(config: UuidConfig) -> Result {
let pattern = r"(?x) # Enable comments and whitespace insensitivity
\b[0-9a-fA-F]{8}\b # Match first segment of UUID
- # Match separator
\b[0-9a-fA-F]{4}\b # Match second segment of UUID
- # Match separator
\b[0-9a-fA-F]{4}\b # Match third segment of UUID
- # Match separator
\b[0-9a-fA-F]{4}\b # Match fourth segment of UUID
- # Match separator
\b[0-9a-fA-F]{12}\b # Match last segment of UUID
";
let regex = RegexBuilder::new(pattern).unicode(false).build()?;
Ok(Self {
regex,
number: Painter::new(config.number.into()),
letter: Painter::new(config.letter.into()),
dash: Painter::new(config.dash.into()),
})
}
}
fn has_at_least_n_dashes(bytes: &[u8], n: usize) -> bool {
let mut start = 0;
for _ in 0..n {
match memchr(b'-', &bytes[start..]) {
Some(pos) => start += pos + 1,
None => return false,
}
}
true
}
impl Highlight for UuidHighlighter {
fn apply<'a>(&self, input: &'a str) -> Cow<'a, str> {
if !has_at_least_n_dashes(input.as_bytes(), 4) {
return Cow::Borrowed(input);
}
self.regex.replace_all_cow(input, |caps, buf| {
let matched = caps.get(0).unwrap().as_str();
for (i, c) in matched.char_indices() {
let s = &matched[i..i + c.len_utf8()];
let painter = match c {
'0'..='9' => &self.number,
'a'..='f' | 'A'..='F' => &self.letter,
'-' => &self.dash,
_ => {
buf.push(c);
continue;
}
};
painter.paint(buf, s);
}
})
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::core::tests::escape_code_converter::ConvertEscapeCodes;
use crate::style::{Color, Style};
#[test]
fn test_uuid_highlighter() {
let highlighter = UuidHighlighter::new(UuidConfig {
number: Style::new().fg(Color::Cyan),
letter: Style::new().fg(Color::Yellow),
dash: Style::new().fg(Color::Red),
})
.unwrap();
let cases = vec![
(
"The UUID is 123e4567-e89b-12d3-a456-426614174000.",
"The UUID is [cyan]1[reset][cyan]2[reset][cyan]3[reset][yellow]e[reset][cyan]4[reset][cyan]5[reset][cyan]6[reset][cyan]7[reset][red]-[reset][yellow]e[reset][cyan]8[reset][cyan]9[reset][yellow]b[reset][red]-[reset][cyan]1[reset][cyan]2[reset][yellow]d[reset][cyan]3[reset][red]-[reset][yellow]a[reset][cyan]4[reset][cyan]5[reset][cyan]6[reset][red]-[reset][cyan]4[reset][cyan]2[reset][cyan]6[reset][cyan]6[reset][cyan]1[reset][cyan]4[reset][cyan]1[reset][cyan]7[reset][cyan]4[reset][cyan]0[reset][cyan]0[reset][cyan]0[reset].",
),
(
"Another UUID is f47ac10b-58cc-4372-a567-0e02b2c3d479.",
"Another UUID is [yellow]f[reset][cyan]4[reset][cyan]7[reset][yellow]a[reset][yellow]c[reset][cyan]1[reset][cyan]0[reset][yellow]b[reset][red]-[reset][cyan]5[reset][cyan]8[reset][yellow]c[reset][yellow]c[reset][red]-[reset][cyan]4[reset][cyan]3[reset][cyan]7[reset][cyan]2[reset][red]-[reset][yellow]a[reset][cyan]5[reset][cyan]6[reset][cyan]7[reset][red]-[reset][cyan]0[reset][yellow]e[reset][cyan]0[reset][cyan]2[reset][yellow]b[reset][cyan]2[reset][yellow]c[reset][cyan]3[reset][yellow]d[reset][cyan]4[reset][cyan]7[reset][cyan]9[reset].",
),
("No UUID here!", "No UUID here!"),
];
for (input, expected) in cases {
let actual = highlighter.apply(input);
assert_eq!(expected, actual.to_string().convert_escape_codes());
}
}
}
================================================
FILE: src/core/mod.rs
================================================
pub mod highlighter;
pub mod style;
pub mod config;
mod highlighters;
mod utils;
#[cfg(test)]
mod tests {
pub(crate) mod escape_code_converter;
}
================================================
FILE: src/core/style.rs
================================================
use nu_ansi_term::{Color as NuColor, Style as NuStyle};
use serde::Deserialize;
/// Defines the styling attributes for highlighted text.
///
/// Allows setting foreground (`fg`) and background (`bg`) colors as well as
/// text attributes like bold, italic, faint, and underline.
///
/// Use the provided builder methods for convenient configuration.
///
/// # Examples
///
/// ```rust
/// use tailspin::style::{Style, Color};
///
/// let style = Style::default().fg(Color::Blue).bold();
/// ```
#[derive(PartialEq, Eq, Ord, PartialOrd, Hash, Debug, Clone, Copy, Default, Deserialize)]
pub struct Style {
#[serde(default)]
pub fg: Option,
#[serde(default)]
pub bg: Option,
#[serde(default)]
pub bold: bool,
#[serde(default)]
pub faint: bool,
#[serde(default)]
pub italic: bool,
#[serde(default)]
pub underline: bool,
}
impl Style {
pub fn new() -> Style {
Style::default()
}
pub const fn bold(&self) -> Style {
Style { bold: true, ..*self }
}
pub const fn faint(&self) -> Style {
Style { faint: true, ..*self }
}
pub const fn italic(&self) -> Style {
Style { italic: true, ..*self }
}
pub const fn underline(&self) -> Style {
Style {
underline: true,
..*self
}
}
pub const fn fg(&self, fg: Color) -> Style {
Style { fg: Some(fg), ..*self }
}
pub const fn on(&self, bg: Color) -> Style {
Style { bg: Some(bg), ..*self }
}
}
/// Available ANSI colors for terminal output.
///
/// Includes standard and bright variants.
///
/// # Examples
///
/// ```rust
/// use tailspin::style::Color;
///
/// let cyan = Color::Cyan;
/// ```
#[derive(PartialEq, Eq, Ord, PartialOrd, Hash, Debug, Clone, Copy, Default, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Color {
#[default]
Default,
Black,
Red,
Green,
Yellow,
Blue,
Magenta,
Cyan,
White,
BrightBlack,
BrightRed,
BrightGreen,
BrightYellow,
BrightBlue,
BrightMagenta,
BrightCyan,
BrightWhite,
}
impl From<&Color> for NuColor {
fn from(color: &Color) -> Self {
match color {
Color::Default => NuColor::Default,
Color::Black => NuColor::Black,
Color::Red => NuColor::Red,
Color::Green => NuColor::Green,
Color::Yellow => NuColor::Yellow,
Color::Blue => NuColor::Blue,
Color::Magenta => NuColor::Magenta,
Color::Cyan => NuColor::Cyan,
Color::White => NuColor::White,
Color::BrightBlack => NuColor::DarkGray,
Color::BrightRed => NuColor::LightRed,
Color::BrightGreen => NuColor::LightGreen,
Color::BrightYellow => NuColor::LightYellow,
Color::BrightBlue => NuColor::LightBlue,
Color::BrightMagenta => NuColor::LightMagenta,
Color::BrightCyan => NuColor::LightCyan,
Color::BrightWhite => NuColor::LightGray,
}
}
}
impl From